{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.10","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Importing Libraries","metadata":{}},{"cell_type":"code","source":"! pip install biosppy   ","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:54:19.597768Z","iopub.execute_input":"2021-06-19T06:54:19.598261Z","iopub.status.idle":"2021-06-19T06:54:30.240164Z","shell.execute_reply.started":"2021-06-19T06:54:19.598156Z","shell.execute_reply":"2021-06-19T06:54:30.239069Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"Collecting biosppy\n  Downloading biosppy-0.7.2.tar.gz (90 kB)\n\u001b[K     |████████████████████████████████| 90 kB 2.1 MB/s eta 0:00:011\n\u001b[?25hCollecting bidict\n  Downloading bidict-0.21.2-py2.py3-none-any.whl (37 kB)\nRequirement already satisfied: h5py in /opt/conda/lib/python3.7/site-packages (from biosppy) (2.10.0)\nRequirement already satisfied: matplotlib in /opt/conda/lib/python3.7/site-packages (from biosppy) (3.4.2)\nRequirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.19.5)\nRequirement already satisfied: scikit-learn in /opt/conda/lib/python3.7/site-packages (from biosppy) (0.24.2)\nRequirement already satisfied: scipy in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.6.2)\nRequirement already satisfied: shortuuid in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.0.1)\nRequirement already satisfied: six in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.15.0)\nRequirement already satisfied: joblib in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.0.1)\nRequirement already satisfied: opencv-python in /opt/conda/lib/python3.7/site-packages (from biosppy) (4.5.2.54)\nRequirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (2.8.1)\nRequirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (2.4.7)\nRequirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (0.10.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (1.3.1)\nRequirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (8.1.2)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.7/site-packages (from scikit-learn->biosppy) (2.1.0)\nBuilding wheels for collected packages: biosppy\n  Building wheel for biosppy (setup.py) ... \u001b[?25ldone\n\u001b[?25h  Created wheel for biosppy: filename=biosppy-0.7.2-py2.py3-none-any.whl size=102094 sha256=385411a5820175fb9aaab2f7e6229bad28d96e86087d8074bfaca9843666f8fd\n  Stored in directory: /root/.cache/pip/wheels/eb/bf/1d/2906a634c336601f1492a36efa9807c7f8faa36ceebed154d8\nSuccessfully built biosppy\nInstalling collected packages: bidict, biosppy\nSuccessfully installed bidict-0.21.2 biosppy-0.7.2\n","output_type":"stream"}]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport tensorflow as tf\nimport wfdb\nimport os                                                                                                  \nimport gc\nimport scipy       \nimport sklearn\nfrom pathlib import Path\nfrom sklearn.utils import shuffle\nfrom sklearn.manifold import TSNE\nimport seaborn as sns\nfrom sklearn import preprocessing\nimport shutil\nimport math\nimport random\nfrom scipy.spatial import distance\nfrom biosppy.signals import ecg\nfrom scipy.interpolate import PchipInterpolator","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:54:31.497686Z","iopub.execute_input":"2021-06-19T06:54:31.498399Z","iopub.status.idle":"2021-06-19T06:54:38.547928Z","shell.execute_reply.started":"2021-06-19T06:54:31.498354Z","shell.execute_reply":"2021-06-19T06:54:38.546708Z"},"trusted":true},"execution_count":2,"outputs":[]},{"cell_type":"code","source":"try:\n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()  # TPU detection\n    print('Running on TPU ', tpu.cluster_spec().as_dict()['worker'])\nexcept ValueError:\n    raise BaseException('ERROR: Not connected to a TPU runtime; please see the previous cell in this notebook for instructions!')\n\ntf.config.experimental_connect_to_cluster(tpu)\ntf.tpu.experimental.initialize_tpu_system(tpu)\ntpu_strategy = tf.distribute.experimental.TPUStrategy(tpu)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:54:38.549640Z","iopub.execute_input":"2021-06-19T06:54:38.550069Z","iopub.status.idle":"2021-06-19T06:54:43.226344Z","shell.execute_reply.started":"2021-06-19T06:54:38.550024Z","shell.execute_reply":"2021-06-19T06:54:43.225217Z"},"trusted":true},"execution_count":3,"outputs":[{"name":"stdout","text":"Running on TPU  ['10.0.0.2:8470']\n","output_type":"stream"}]},{"cell_type":"markdown","source":"# Dataset Creation","metadata":{}},{"cell_type":"code","source":"###### Constants\nFS = 500\nW_LEN = 355\nW_LEN_1_4 = 355 // 4\nW_LEN_3_4 = 3 * (355 // 4)\n\n###### Function to Segment Signals\n\ndef segmentSignals(signal, r_peaks_annot, normalization=True, person_id= None, file_id=None):\n    \n    \"\"\"\n    Segments signals based on the detected R-Peak\n    Args:\n        signal (numpy array): input signal\n        r_peaks_annot (int []): r-peak locations.\n        normalization (bool, optional): apply z-normalization or not? . Defaults to True.\n        person_id ([type], optional): [description]. Defaults to None.\n        file_id ([type], optional): [description]. Defaults to None.\n    Returns:\n            [tuple(numpy array,numpy array)]: segmented signals and refined r-peaks\n    \"\"\"\n    def refine_rpeaks(signal, r_peaks):\n        \"\"\"\n        Refines the detected R-peaks. If the R-peak is slightly shifted, this assigns the \n        highest point R-peak.\n        Args:\n            signal (numpy array): input signal\n            r_peaks (int []): list of detected r-peaks\n        Returns:\n            [numpy array]: refined r-peaks\n        \"\"\"\n        r_peaks2 = np.array(r_peaks)            # make a copy\n        for i in range(len(r_peaks)):\n            r = r_peaks[i]          # current R-peak\n            small_segment = signal[max(0,r-100):min(len(signal),r+100)]         # consider the neighboring segment of R-peak\n            r_peaks2[i] = np.argmax(small_segment) - 100 + r_peaks[i]           # picking the highest point\n            r_peaks2[i] = min(r_peaks2[i],len(signal))                          # the detected R-peak shouldn't be outside the signal\n            r_peaks2[i] = max(r_peaks2[i],0)                                    # checking if it goes before zero    \n        return r_peaks2                     # returning the refined r-peak list\n    \n    segmented_signals = []                      # array containing the segmented beats\n    \n    r_peaks = np.array(r_peaks_annot)\n\n    r_peaks = refine_rpeaks(signal, r_peaks)\n    skip_len = 2 # Parameter to specify number of r_peaks in one signal\n    max_seq_len = 640 # Parameter to specify maximum sequence length\n    \n    for r_curr in range(0,int(r_peaks.shape[0]-(skip_len-1)),skip_len):\n        if ((r_peaks[r_curr]-W_LEN_1_4)<0) or ((r_peaks[r_curr+(skip_len-1)]+W_LEN_3_4)>=len(signal)):           # not enough signal to segment\n            continue\n        segmented_signal = np.array(signal[r_peaks[r_curr]-W_LEN_1_4:r_peaks[r_curr+(skip_len-1)]+W_LEN_3_4])        # segmenting a heartbeat\n        segmented_signal = list(segmented_signal)\n        #print(segmented_signal.shape)\n        \n        if(len(segmented_signal) < 640):\n            for m in range(int(640-len(segmented_signal))): # Zero Padding\n                segmented_signal.append(0)\n        else:\n            segmented_signal = (segmented_signal[:int(max_seq_len)])\n            \n        segmented_signal = np.array(segmented_signal)\n        \n        if(segmented_signal.shape != (640,1)):    \n            segmented_signal = np.reshape(segmented_signal,(640,1))\n            \n        if (normalization):             # Z-score normalization\n            if abs(np.std(segmented_signal))<1e-6:          # flat line ECG, will cause zero division error\n                continue\n            segmented_signal = (segmented_signal - np.mean(segmented_signal)) / np.std(segmented_signal)            \n              \n        #if not np.isnan(segmented_signal).any():                    # checking for nan, this will never happen\n            segmented_signals.append(segmented_signal)\n\n    return segmented_signals,r_peaks           # returning the segmented signals and the refined r-peaks\n\n\n###### Function to Read Records\n\ndef read_rec(rec_path):\n\n    \"\"\" \n    Function to read record and return Segmented Signals\n\n    INPUTS:-\n    1) rec_path : Path of the Record\n\n    OUTPUTS:-\n    1) seg_sigs : Final Segmented Signals\n\n    \"\"\"\n    number_of_peaks = 2 # For extracting the required number of peaks                                    \n    full_rec = (wfdb.rdrecord(rec_path)).p_signal[:,0] # Entire Record - Taking Signal from Lead-1\n\n    f = PchipInterpolator(np.arange(int(full_rec.shape[0])),full_rec) # Fitting Interpolation Function\n    num_samples = int(full_rec.shape[0]) # Total Samples in 1000Hz Signal\n    num_samples_final = int(num_samples*(500/1000))\n    x_samp = (np.arange(num_samples)*(1000/500))[:num_samples_final] # Fixing Interpolation Input Values\n    full_rec_interp = f(x_samp)  # Intepolating Values \n    \n    r_peaks_init = ecg.hamilton_segmenter(full_rec_interp,500)[0] # R-Peak Segmentation and input is the signal frequency of 500Hz in this case\n    final_peak_index = r_peaks_init[int(r_peaks_init.shape[0] - int((r_peaks_init.shape[0]%number_of_peaks)))-1]\n    r_peaks_final = r_peaks_init[:final_peak_index] # Final Number of R_Peaks\n    full_rec_final = full_rec_interp[:int(r_peaks_final[-1]+W_LEN)] # Final Sequence\n    seg_sigs, r_peaks_ref = segmentSignals(full_rec_final,list(r_peaks_final)) # Final Signal Segmentation\n\n    return seg_sigs","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:54:43.228005Z","iopub.execute_input":"2021-06-19T06:54:43.228300Z","iopub.status.idle":"2021-06-19T06:54:43.249083Z","shell.execute_reply.started":"2021-06-19T06:54:43.228272Z","shell.execute_reply":"2021-06-19T06:54:43.248055Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"code","source":"###### Extracting List of the Elements with Two Sessions \ndir = '../input/ptb-dataset/ptb-diagnostic-ecg-database-1.0.0'\ntotal_index = 0\n#subjects_with_two = []\nsubjects = []\n\nfor item in np.sort(os.listdir(dir)):\n    #print('----------------------------------')\n    #print(item)\n    dir_sub = os.path.join(dir,item)\n    if(os.path.isdir(dir_sub)):\n        subjects.append(item)\n        #print(len(os.listdir(dir_sub))//3)\n        #if(len(os.listdir(dir_sub))//3 >= 2):\n            #total_index = total_index+1   \n            #print(item)\n        #    subjects_with_two.append(item)\n    #print('----------------------------------')\n\n#print(total_index)\n#print(subjects_with_two)\n\n#subjects = shuffle(subjects)[:100] # Shuffling and Taking 100 Subjects \n#print(subjects)\n\nprint(subjects)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:09:48.669353Z","iopub.execute_input":"2021-06-19T07:09:48.669773Z","iopub.status.idle":"2021-06-19T07:09:48.687887Z","shell.execute_reply.started":"2021-06-19T07:09:48.669735Z","shell.execute_reply":"2021-06-19T07:09:48.686896Z"},"trusted":true},"execution_count":15,"outputs":[{"name":"stdout","text":"['patient001', 'patient002', 'patient003', 'patient004', 'patient005', 'patient006', 'patient007', 'patient008', 'patient009', 'patient010', 'patient011', 'patient012', 'patient013', 'patient014', 'patient015', 'patient016', 'patient017', 'patient018', 'patient019', 'patient020', 'patient021', 'patient022', 'patient023', 'patient024', 'patient025', 'patient026', 'patient027', 'patient028', 'patient029', 'patient030', 'patient031', 'patient032', 'patient033', 'patient034', 'patient035', 'patient036', 'patient037', 'patient038', 'patient039', 'patient040', 'patient041', 'patient042', 'patient043', 'patient044', 'patient045', 'patient046', 'patient047', 'patient048', 'patient049', 'patient050', 'patient051', 'patient052', 'patient053', 'patient054', 'patient055', 'patient056', 'patient057', 'patient058', 'patient059', 'patient060', 'patient061', 'patient062', 'patient063', 'patient064', 'patient065', 'patient066', 'patient067', 'patient068', 'patient069', 'patient070', 'patient071', 'patient072', 'patient073', 'patient074', 'patient075', 'patient076', 'patient077', 'patient078', 'patient079', 'patient080', 'patient081', 'patient082', 'patient083', 'patient084', 'patient085', 'patient086', 'patient087', 'patient088', 'patient089', 'patient090', 'patient091', 'patient092', 'patient093', 'patient094', 'patient095', 'patient096', 'patient097', 'patient098', 'patient099', 'patient100', 'patient101', 'patient102', 'patient103', 'patient104', 'patient105', 'patient106', 'patient107', 'patient108', 'patient109', 'patient110', 'patient111', 'patient112', 'patient113', 'patient114', 'patient115', 'patient116', 'patient117', 'patient118', 'patient119', 'patient120', 'patient121', 'patient122', 'patient123', 'patient125', 'patient126', 'patient127', 'patient128', 'patient129', 'patient130', 'patient131', 'patient133', 'patient135', 'patient136', 'patient137', 'patient138', 'patient139', 'patient140', 'patient141', 'patient142', 'patient143', 'patient144', 'patient145', 'patient146', 'patient147', 'patient148', 'patient149', 'patient150', 'patient151', 'patient152', 'patient153', 'patient154', 'patient155', 'patient156', 'patient157', 'patient158', 'patient159', 'patient160', 'patient162', 'patient163', 'patient164', 'patient165', 'patient166', 'patient167', 'patient168', 'patient169', 'patient170', 'patient171', 'patient172', 'patient173', 'patient174', 'patient175', 'patient176', 'patient177', 'patient178', 'patient179', 'patient180', 'patient181', 'patient182', 'patient183', 'patient184', 'patient185', 'patient186', 'patient187', 'patient188', 'patient189', 'patient190', 'patient191', 'patient192', 'patient193', 'patient194', 'patient195', 'patient196', 'patient197', 'patient198', 'patient199', 'patient200', 'patient201', 'patient202', 'patient203', 'patient204', 'patient205', 'patient206', 'patient207', 'patient208', 'patient209', 'patient210', 'patient211', 'patient212', 'patient213', 'patient214', 'patient215', 'patient216', 'patient217', 'patient218', 'patient219', 'patient220', 'patient221', 'patient222', 'patient223', 'patient224', 'patient225', 'patient226', 'patient227', 'patient228', 'patient229', 'patient230', 'patient231', 'patient232', 'patient233', 'patient234', 'patient235', 'patient236', 'patient237', 'patient238', 'patient239', 'patient240', 'patient241', 'patient242', 'patient243', 'patient244', 'patient245', 'patient246', 'patient247', 'patient248', 'patient249', 'patient250', 'patient251', 'patient252', 'patient253', 'patient254', 'patient255', 'patient256', 'patient257', 'patient258', 'patient259', 'patient260', 'patient261', 'patient262', 'patient263', 'patient264', 'patient265', 'patient266', 'patient267', 'patient268', 'patient269', 'patient270', 'patient271', 'patient272', 'patient273', 'patient274', 'patient275', 'patient276', 'patient277', 'patient278', 'patient279', 'patient280', 'patient281', 'patient282', 'patient283', 'patient284', 'patient285', 'patient286', 'patient287', 'patient288', 'patient289', 'patient290', 'patient291', 'patient292', 'patient293', 'patient294']\n","output_type":"stream"}]},{"cell_type":"code","source":"###### Creation of Numpy Arrays\nmain_dir = '../input/ptb-dataset/ptb-diagnostic-ecg-database-1.0.0'\n\nX_train = []\nX_dev = []\ny_train = []\ny_dev = []\n\ncurrent_index = 0\n\n#for person_index,person_folder in enumerate(list(np.sort(os.listdir(main_dir)))):\n \nfor person_folder in np.sort(subjects):\n    \n    person_folder_path = os.path.join(main_dir,person_folder)\n    person_folder_items = (list(np.sort(os.listdir(person_folder_path))))\n    \n    for file_idx in range(0,len(person_folder_items),3):\n        file_path_list = str((os.path.join(person_folder_path,person_folder_items[file_idx])))\n        file_num = file_idx//3\n        \n        rec_path = ''\n        for item_index in range(0,(len(file_path_list)-4)):\n            rec_path = rec_path+str(file_path_list[item_index])\n         \n        seg_signal_current = read_rec(rec_path) # Extracting Records\n        \n        for k in range(len(seg_signal_current)):\n            \n            if(k <= np.round(len(seg_signal_current)*0.5)):\n                X_train.append(seg_signal_current[k])\n                y_train.append(current_index)\n                \n            else:\n                X_dev.append(seg_signal_current[k])\n                y_dev.append(current_index)\n                \n        #if(file_num == 0):\n        #    for k in range(len(seg_signal_current)):\n        #        X_train.append(seg_signal_current[k])\n        #        y_train.append(current_index)\n                \n        #if(file_num == 1):\n        #    for k in range(len(seg_signal_current)):\n        #        X_dev.append(seg_signal_current[k])\n        #        y_dev.append(current_index)\n                \n    current_index = current_index+1\n    print('Processed for Person - '+str(current_index))\n    \n###### Shuffling Numpy Arrays\nX_train,y_train = shuffle(X_train,y_train)\nX_dev,y_dev = shuffle(X_dev,y_dev)\n\nprint(np.array(X_train).shape)\nprint(np.array(y_train).shape)\nprint(np.array(X_dev).shape)\nprint(np.array(y_dev).shape)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:09:56.638650Z","iopub.execute_input":"2021-06-19T07:09:56.639070Z","iopub.status.idle":"2021-06-19T07:12:14.312357Z","shell.execute_reply.started":"2021-06-19T07:09:56.639035Z","shell.execute_reply":"2021-06-19T07:12:14.311283Z"},"trusted":true},"execution_count":16,"outputs":[{"name":"stdout","text":"Processed for Person - 1\nProcessed for Person - 2\nProcessed for Person - 3\nProcessed for Person - 4\nProcessed for Person - 5\nProcessed for Person - 6\nProcessed for Person - 7\nProcessed for Person - 8\nProcessed for Person - 9\nProcessed for Person - 10\nProcessed for Person - 11\nProcessed for Person - 12\nProcessed for Person - 13\nProcessed for Person - 14\nProcessed for Person - 15\nProcessed for Person - 16\nProcessed for Person - 17\nProcessed for Person - 18\nProcessed for Person - 19\nProcessed for Person - 20\nProcessed for Person - 21\nProcessed for Person - 22\nProcessed for Person - 23\nProcessed for Person - 24\nProcessed for Person - 25\nProcessed for Person - 26\nProcessed for Person - 27\nProcessed for Person - 28\nProcessed for Person - 29\nProcessed for Person - 30\nProcessed for Person - 31\nProcessed for Person - 32\nProcessed for Person - 33\nProcessed for Person - 34\nProcessed for Person - 35\nProcessed for Person - 36\nProcessed for Person - 37\nProcessed for Person - 38\nProcessed for Person - 39\nProcessed for Person - 40\nProcessed for Person - 41\nProcessed for Person - 42\nProcessed for Person - 43\nProcessed for Person - 44\nProcessed for Person - 45\nProcessed for Person - 46\nProcessed for Person - 47\nProcessed for Person - 48\nProcessed for Person - 49\nProcessed for Person - 50\nProcessed for Person - 51\nProcessed for Person - 52\nProcessed for Person - 53\nProcessed for Person - 54\nProcessed for Person - 55\nProcessed for Person - 56\nProcessed for Person - 57\nProcessed for Person - 58\nProcessed for Person - 59\nProcessed for Person - 60\nProcessed for Person - 61\nProcessed for Person - 62\nProcessed for Person - 63\nProcessed for Person - 64\nProcessed for Person - 65\nProcessed for Person - 66\nProcessed for Person - 67\nProcessed for Person - 68\nProcessed for Person - 69\nProcessed for Person - 70\nProcessed for Person - 71\nProcessed for Person - 72\nProcessed for Person - 73\nProcessed for Person - 74\nProcessed for Person - 75\nProcessed for Person - 76\nProcessed for Person - 77\nProcessed for Person - 78\nProcessed for Person - 79\nProcessed for Person - 80\nProcessed for Person - 81\nProcessed for Person - 82\nProcessed for Person - 83\nProcessed for Person - 84\nProcessed for Person - 85\nProcessed for Person - 86\nProcessed for Person - 87\nProcessed for Person - 88\nProcessed for Person - 89\nProcessed for Person - 90\nProcessed for Person - 91\nProcessed for Person - 92\nProcessed for Person - 93\nProcessed for Person - 94\nProcessed for Person - 95\nProcessed for Person - 96\nProcessed for Person - 97\nProcessed for Person - 98\nProcessed for Person - 99\nProcessed for Person - 100\nProcessed for Person - 101\nProcessed for Person - 102\nProcessed for Person - 103\nProcessed for Person - 104\nProcessed for Person - 105\nProcessed for Person - 106\nProcessed for Person - 107\nProcessed for Person - 108\nProcessed for Person - 109\nProcessed for Person - 110\nProcessed for Person - 111\nProcessed for Person - 112\nProcessed for Person - 113\nProcessed for Person - 114\nProcessed for Person - 115\nProcessed for Person - 116\nProcessed for Person - 117\nProcessed for Person - 118\nProcessed for Person - 119\nProcessed for Person - 120\nProcessed for Person - 121\nProcessed for Person - 122\nProcessed for Person - 123\nProcessed for Person - 124\nProcessed for Person - 125\nProcessed for Person - 126\nProcessed for Person - 127\nProcessed for Person - 128\nProcessed for Person - 129\nProcessed for Person - 130\nProcessed for Person - 131\nProcessed for Person - 132\nProcessed for Person - 133\nProcessed for Person - 134\nProcessed for Person - 135\nProcessed for Person - 136\nProcessed for Person - 137\nProcessed for Person - 138\nProcessed for Person - 139\nProcessed for Person - 140\nProcessed for Person - 141\nProcessed for Person - 142\nProcessed for Person - 143\nProcessed for Person - 144\nProcessed for Person - 145\nProcessed for Person - 146\nProcessed for Person - 147\nProcessed for Person - 148\nProcessed for Person - 149\nProcessed for Person - 150\nProcessed for Person - 151\nProcessed for Person - 152\nProcessed for Person - 153\nProcessed for Person - 154\nProcessed for Person - 155\nProcessed for Person - 156\nProcessed for Person - 157\nProcessed for Person - 158\nProcessed for Person - 159\nProcessed for Person - 160\nProcessed for Person - 161\nProcessed for Person - 162\nProcessed for Person - 163\nProcessed for Person - 164\nProcessed for Person - 165\nProcessed for Person - 166\nProcessed for Person - 167\nProcessed for Person - 168\nProcessed for Person - 169\nProcessed for Person - 170\nProcessed for Person - 171\nProcessed for Person - 172\nProcessed for Person - 173\nProcessed for Person - 174\nProcessed for Person - 175\nProcessed for Person - 176\nProcessed for Person - 177\nProcessed for Person - 178\nProcessed for Person - 179\nProcessed for Person - 180\nProcessed for Person - 181\nProcessed for Person - 182\nProcessed for Person - 183\nProcessed for Person - 184\nProcessed for Person - 185\nProcessed for Person - 186\nProcessed for Person - 187\nProcessed for Person - 188\nProcessed for Person - 189\nProcessed for Person - 190\nProcessed for Person - 191\nProcessed for Person - 192\nProcessed for Person - 193\nProcessed for Person - 194\nProcessed for Person - 195\nProcessed for Person - 196\nProcessed for Person - 197\nProcessed for Person - 198\nProcessed for Person - 199\nProcessed for Person - 200\nProcessed for Person - 201\nProcessed for Person - 202\nProcessed for Person - 203\nProcessed for Person - 204\nProcessed for Person - 205\nProcessed for Person - 206\nProcessed for Person - 207\nProcessed for Person - 208\nProcessed for Person - 209\nProcessed for Person - 210\nProcessed for Person - 211\nProcessed for Person - 212\nProcessed for Person - 213\nProcessed for Person - 214\nProcessed for Person - 215\nProcessed for Person - 216\nProcessed for Person - 217\nProcessed for Person - 218\nProcessed for Person - 219\nProcessed for Person - 220\nProcessed for Person - 221\nProcessed for Person - 222\nProcessed for Person - 223\nProcessed for Person - 224\nProcessed for Person - 225\nProcessed for Person - 226\nProcessed for Person - 227\nProcessed for Person - 228\nProcessed for Person - 229\nProcessed for Person - 230\nProcessed for Person - 231\nProcessed for Person - 232\nProcessed for Person - 233\nProcessed for Person - 234\nProcessed for Person - 235\nProcessed for Person - 236\nProcessed for Person - 237\nProcessed for Person - 238\nProcessed for Person - 239\nProcessed for Person - 240\nProcessed for Person - 241\nProcessed for Person - 242\nProcessed for Person - 243\nProcessed for Person - 244\nProcessed for Person - 245\nProcessed for Person - 246\nProcessed for Person - 247\nProcessed for Person - 248\nProcessed for Person - 249\nProcessed for Person - 250\nProcessed for Person - 251\nProcessed for Person - 252\nProcessed for Person - 253\nProcessed for Person - 254\nProcessed for Person - 255\nProcessed for Person - 256\nProcessed for Person - 257\nProcessed for Person - 258\nProcessed for Person - 259\nProcessed for Person - 260\nProcessed for Person - 261\nProcessed for Person - 262\nProcessed for Person - 263\nProcessed for Person - 264\nProcessed for Person - 265\nProcessed for Person - 266\nProcessed for Person - 267\nProcessed for Person - 268\nProcessed for Person - 269\nProcessed for Person - 270\nProcessed for Person - 271\nProcessed for Person - 272\nProcessed for Person - 273\nProcessed for Person - 274\nProcessed for Person - 275\nProcessed for Person - 276\nProcessed for Person - 277\nProcessed for Person - 278\nProcessed for Person - 279\nProcessed for Person - 280\nProcessed for Person - 281\nProcessed for Person - 282\nProcessed for Person - 283\nProcessed for Person - 284\nProcessed for Person - 285\nProcessed for Person - 286\nProcessed for Person - 287\nProcessed for Person - 288\nProcessed for Person - 289\nProcessed for Person - 290\n(18876, 640, 1)\n(18876,)\n(17773, 640, 1)\n(17773,)\n","output_type":"stream"}]},{"cell_type":"code","source":"###### Saving Numpy Arrays\nnp.savez_compressed('X_train_PTB.npz',np.array(X_train))\nnp.savez_compressed('y_train_PTB.npz',np.array(y_train))\nnp.savez_compressed('X_dev_PTB.npz',np.array(X_dev))\nnp.savez_compressed('y_dev_PTB.npz',np.array(y_dev)) ","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:12:42.320732Z","iopub.execute_input":"2021-06-19T07:12:42.321135Z","iopub.status.idle":"2021-06-19T07:12:49.287650Z","shell.execute_reply.started":"2021-06-19T07:12:42.321102Z","shell.execute_reply":"2021-06-19T07:12:49.286543Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"##### Loading Dataset\nX_train = np.array(np.load('./X_train_PTB.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\nX_dev = np.array(np.load('./X_dev_PTB.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\ny_train = np.load('./y_train_PTB.npz',allow_pickle=True)['arr_0']\ny_dev = np.load('./y_dev_PTB.npz',allow_pickle=True)['arr_0']","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:13:19.830502Z","iopub.execute_input":"2021-06-19T07:13:19.830940Z","iopub.status.idle":"2021-06-19T07:13:21.038654Z","shell.execute_reply.started":"2021-06-19T07:13:19.830895Z","shell.execute_reply":"2021-06-19T07:13:21.037632Z"},"trusted":true},"execution_count":19,"outputs":[]},{"cell_type":"code","source":"##### Converting Labels to Categorical Format\ny_train_ohot = tf.keras.utils.to_categorical(y_train)\ny_dev_ohot = tf.keras.utils.to_categorical(y_dev)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:13:24.750383Z","iopub.execute_input":"2021-06-19T07:13:24.750778Z","iopub.status.idle":"2021-06-19T07:13:24.779955Z","shell.execute_reply.started":"2021-06-19T07:13:24.750747Z","shell.execute_reply":"2021-06-19T07:13:24.778956Z"},"trusted":true},"execution_count":20,"outputs":[]},{"cell_type":"code","source":"##### Testing \nprint(y_dev[:10])\n#print(np.array(X_train).shape)\n#print(np.array(y_train).shape)\n#print(np.array(X_dev).shape)\n#print(np.array(y_dev).shape)\n\n#for i in range(2):\n#    plt.plot(np.arange(640),X_train[i])\n#    plt.show()","metadata":{"execution":{"iopub.status.busy":"2021-06-19T07:14:58.551005Z","iopub.execute_input":"2021-06-19T07:14:58.551400Z","iopub.status.idle":"2021-06-19T07:14:58.556995Z","shell.execute_reply.started":"2021-06-19T07:14:58.551368Z","shell.execute_reply":"2021-06-19T07:14:58.556040Z"},"trusted":true},"execution_count":22,"outputs":[{"name":"stdout","text":"[ 75  67  34  49 206  31  73  80  39  31]\n","output_type":"stream"}]},{"cell_type":"markdown","source":"# Model Making","metadata":{}},{"cell_type":"markdown","source":"## Self-Calibrated Convolution","metadata":{}},{"cell_type":"code","source":"###### Model Development : Self-Calibrated \n\n##### Defining Self-Calibrated Block\n\nrate_regularizer = 1e-5\nclass self_cal_Conv1D(tf.keras.layers.Layer):\n\n    \"\"\" \n    This is inherited class from keras.layers and shall be instatition of self-calibrated convolutions\n    \"\"\"\n    \n    def __init__(self,num_filters,kernel_size,num_features):\n    \n        #### Defining Essentials\n        super().__init__()\n        self.num_filters = num_filters\n        self.kernel_size = kernel_size\n        self.num_features = num_features # Number of Channels in Input\n\n        #### Defining Layers\n        self.conv2 = tf.keras.layers.Conv1D(self.num_features/2,self.kernel_size,padding='same',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32',activation='relu')\n        self.conv3 = tf.keras.layers.Conv1D(self.num_features/2,self.kernel_size,padding='same',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32',activation='relu')\n        self.conv4 = tf.keras.layers.Conv1D(self.num_filters/2,self.kernel_size,padding='same',activation='relu',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32')\n        self.conv1 = tf.keras.layers.Conv1D(self.num_filters/2,self.kernel_size,padding='same',activation='relu',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32')\n        self.upsample = tf.keras.layers.Conv1DTranspose(filters=int(self.num_features/2),kernel_size=4,strides=4)\n        #self.attention_layer = tf.keras.layers.Attention()\n        #self.lstm = tf.keras.layers.LSTM(int(self.num_features/2),return_sequences=True)\n        #self.layernorm = tf.keras.layers.LayerNormalization()\n    \n    def get_config(self):\n\n        config = super().get_config().copy()\n        config.update({\n            'num_filters': self.num_filters,\n            'kernel_size': self.kernel_size,\n            'num_features': self.num_features\n        })\n        return config\n    \n    \n    def call(self,X):\n       \n        \"\"\"\n          INPUTS : 1) X - Input Tensor of shape (batch_size,sequence_length,num_features)\n          OUTPUTS : 1) X - Output Tensor of shape (batch_size,sequence_length,num_features)\n        \"\"\"\n        \n        #### Dimension Extraction\n        b_s = (X.shape)[0] \n        seq_len = (X.shape)[1]\n        num_features = (X.shape)[2]\n        \n        #### Channel-Wise Division\n        X_attention = X[:,:,0:int(self.num_features/2)]\n        X_global = X[:,:,int(self.num_features/2):]\n        \n        #### Self Calibration Block\n\n        ### Local Feature Detection\n\n        ## Down-Sampling\n        #x1 = X_attention[:,0:int(seq_len/5),:]\n        #x2 = X_attention[:,int(seq_len/5):int(seq_len*(2/5)),:]\n        #x3 = X_attention[:,int(seq_len*(2/5)):int(seq_len*(3/5)),:]\n        #x4 = X_attention[:,int(seq_len*(3/5)):int(seq_len*(4/5)),:]\n        #x5 = X_attention[:,int(seq_len*(4/5)):seq_len,:]\n        x_down_sampled = tf.keras.layers.AveragePooling1D(pool_size=4,strides=4)(X_attention)\n        \n        ## Convoluting Down Sampled Sequence \n        #x1 = self.conv2(x1)\n        #x2 = self.conv2(x2)\n        #x3 = self.conv2(x3)\n        #x4 = self.conv2(x4)\n        #x5 = self.conv2(x5)\n        x_down_conv = self.conv2(x_down_sampled)\n        #x_down_feature = self.attention_layer([x_down_sampled,x_down_sampled])\n        #x_down_feature = self.lstm(x_down_sampled)\n        #x_down_feature = self.layernorm(x_down_feature)\n        \n        ## Up-Sampling\n        x_down_upsampled = self.upsample(x_down_conv)   \n        #X_local_upsampled = tf.keras.layers.concatenate([x1,x2,x3,x4,x5],axis=1)\n\n        ## Local-CAM\n        X_local = X_attention + x_down_upsampled  #X_local_upsampled\n\n        ## Local Importance \n        X_2 = tf.keras.activations.sigmoid(X_local)\n\n        ### Self-Calibration\n\n        ## Global Convolution\n        X_3 = self.conv3(X_attention)\n\n        ## Attention Determination\n        X_attention = tf.math.multiply(X_2,X_3)\n\n        #### Self-Calibration Feature Extraction\n        X_4 = self.conv4(X_attention)\n\n        #### Normal Feature Extraction\n        X_1 = self.conv1(X_global)\n\n        #### Concatenating and Returning Output\n        return (tf.keras.layers.concatenate([X_1,X_4],axis=2))","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:57:08.755423Z","iopub.execute_input":"2021-06-19T06:57:08.756137Z","iopub.status.idle":"2021-06-19T06:57:08.774736Z","shell.execute_reply.started":"2021-06-19T06:57:08.756073Z","shell.execute_reply":"2021-06-19T06:57:08.773512Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"markdown","source":"## Transformer","metadata":{}},{"cell_type":"code","source":"def get_angles(pos, i, d_model):\n    angle_rates = 1 / np.power(10000, (2 * (i//2)) / np.float32(d_model))\n    return pos * angle_rates\n\ndef positional_encoding(position, d_model):\n    angle_rads = get_angles(np.arange(position)[:, np.newaxis],\n                          np.arange(d_model)[np.newaxis, :],\n                          d_model)\n  \n  # apply sin to even indices in the array; 2i\n    angle_rads[:, 0::2] = np.sin(angle_rads[:, 0::2])\n  \n  # apply cos to odd indices in the array; 2i+1\n    angle_rads[:, 1::2] = np.cos(angle_rads[:, 1::2])\n    \n    pos_encoding = angle_rads[np.newaxis, ...]\n    \n    return tf.cast(pos_encoding, dtype=tf.float32)\n\ndef create_padding_mask(seq):\n    seq = tf.cast(tf.math.equal(seq, 0), tf.float32)\n  \n    # add extra dimensions to add the padding\n    # to the attention logits. \n    return seq[:, tf.newaxis, tf.newaxis, :]  # (batch_size, 1, 1, seq_len)\n\ndef scaled_dot_product_attention(q, k, v, mask):\n    \"\"\"Calculate the attention weights.\n    q, k, v must have matching leading dimensions.\n    k, v must have matching penultimate dimension, i.e.: seq_len_k = seq_len_v.\n    The mask has different shapes depending on its type(padding or look ahead) \n    but it must be broadcastable for addition.\n\n    Args:\n    q: query shape == (..., seq_len_q, depth)\n    k: key shape == (..., seq_len_k, depth)\n    v: value shape == (..., seq_len_v, depth_v)\n    mask: Float tensor with shape broadcastable \n          to (..., seq_len_q, seq_len_k). Defaults to None.\n\n    Returns:\n    output, attention_weights\n    \"\"\"\n\n    matmul_qk = tf.matmul(q, k, transpose_b=True)  # (..., seq_len_q, seq_len_k)\n  \n    # scale matmul_qk\n    dk = tf.cast(tf.shape(k)[-1], tf.float32)\n    scaled_attention_logits = matmul_qk / tf.math.sqrt(dk)\n\n    # add the mask to the scaled tensor.\n    if mask is not None:\n        scaled_attention_logits += (mask * -1e9)  \n\n    # softmax is normalized on the last axis (seq_len_k) so that the scores\n    # add up to 1.\n    attention_weights = tf.nn.softmax(scaled_attention_logits, axis=-1)  # (..., seq_len_q, seq_len_k)\n\n    output = tf.matmul(attention_weights, v)  # (..., seq_len_q, depth_v)\n\n    return output, attention_weights\n\nclass MultiHeadAttention(tf.keras.layers.Layer):\n    \n    def __init__(self, d_model, num_heads):\n        super(MultiHeadAttention, self).__init__()\n        self.num_heads = num_heads\n        self.d_model = d_model\n\n        assert d_model % self.num_heads == 0\n\n        self.depth = d_model // self.num_heads\n\n        self.wq = tf.keras.layers.Dense(d_model)\n        self.wk = tf.keras.layers.Dense(d_model)\n        self.wv = tf.keras.layers.Dense(d_model)\n\n        self.dense = tf.keras.layers.Dense(d_model)\n\n    def get_config(self):\n        config = super(MultiHeadAttention, self).get_config().copy()\n        config.update({\n            'd_model': self.d_model,\n            'num_heads':self.num_heads\n        })\n        \n    def split_heads(self, x, batch_size):\n        \n        \"\"\"Split the last dimension into (num_heads, depth).\n        Transpose the result such that the shape is (batch_size, num_heads, seq_len, depth)\n        \"\"\"\n        x = tf.reshape(x, (batch_size, -1, self.num_heads, self.depth))\n        return tf.transpose(x, perm=[0, 2, 1, 3])\n    \n    def call(self, v, k, q, mask):\n        batch_size = tf.shape(q)[0]\n\n        q = self.wq(q)  # (batch_size, seq_len, d_model)\n        k = self.wk(k)  # (batch_size, seq_len, d_model)\n        v = self.wv(v)  # (batch_size, seq_len, d_model)\n\n        q = self.split_heads(q, batch_size)  # (batch_size, num_heads, seq_len_q, depth)\n        k = self.split_heads(k, batch_size)  # (batch_size, num_heads, seq_len_k, depth)\n        v = self.split_heads(v, batch_size)  # (batch_size, num_heads, seq_len_v, depth)\n\n        # scaled_attention.shape == (batch_size, num_heads, seq_len_q, depth)\n        # attention_weights.shape == (batch_size, num_heads, seq_len_q, seq_len_k)\n        scaled_attention, attention_weights = scaled_dot_product_attention(\n            q, k, v, mask)\n\n        scaled_attention = tf.transpose(scaled_attention, perm=[0, 2, 1, 3])  # (batch_size, seq_len_q, num_heads, depth)\n\n        concat_attention = tf.reshape(scaled_attention, \n                                      (batch_size, -1, self.d_model))  # (batch_size, seq_len_q, d_model)\n\n        output = self.dense(concat_attention)  # (batch_size, seq_len_q, d_model)\n\n        return output, attention_weights\n\ndef point_wise_feed_forward_network(d_model, dff):\n    return tf.keras.Sequential([\n      tf.keras.layers.Dense(dff, activation='relu'),  # (batch_size, seq_len, dff)\n      tf.keras.layers.Dense(d_model)  # (batch_size, seq_len, d_model)\n  ])\n\nclass Encoder(tf.keras.layers.Layer):\n    def __init__(self, num_layers, d_model, num_heads, dff,\n               maximum_position_encoding, rate=0.1):\n        super(Encoder, self).__init__()\n\n        self.d_model = d_model\n        self.num_layers = num_layers\n        self.num_heads = num_heads\n        self.dff = dff\n        self.maximum_position_encoding = maximum_position_encoding\n        self.rate = rate\n\n        #self.embedding = tf.keras.layers.Embedding(input_vocab_size, d_model)\n        self.pos_encoding = positional_encoding(maximum_position_encoding, \n                                                self.d_model)\n\n\n        self.enc_layers = [EncoderLayer(d_model, num_heads, dff, rate) \n                           for _ in range(num_layers)]\n\n        self.dropout = tf.keras.layers.Dropout(rate)\n        \n    def get_config(self):\n        config = super(Encoder, self).get_config().copy()\n        config.update({\n            'num_layers': self.num_layers,\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'maximum_position_encoding':self.maximum_position_encoding,\n            'rate':self.rate  \n        })\n        \n    def call(self, x, training, mask):\n\n        seq_len = tf.shape(x)[1]\n\n        # adding embedding and position encoding.\n        #x = self.embedding(x)  # (batch_size, input_seq_len, d_model)\n        x *= tf.math.sqrt(tf.cast(self.d_model, tf.float32))\n        x += self.pos_encoding[:, :seq_len, :]\n\n        x = self.dropout(x, training=training)         \n\n        for i in range(self.num_layers):\n            x = self.enc_layers[i](x, training, mask)\n\n        return x  # (batch_size, input_seq_len, d_model)\n\nclass EncoderLayer(tf.keras.layers.Layer):\n    def __init__(self, d_model, num_heads, dff, rate=0.1):\n        super(EncoderLayer, self).__init__()\n        \n        self.d_model = d_model\n        self.num_heads = num_heads\n        self.dff = dff\n        self.rate = rate\n\n        self.mha = MultiHeadAttention(d_model, num_heads)\n        self.ffn = point_wise_feed_forward_network(d_model, dff)\n\n        self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n        self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n\n        self.dropout1 = tf.keras.layers.Dropout(rate)\n        self.dropout2 = tf.keras.layers.Dropout(rate)\n        \n    def get_config(self):\n        config = super(EncoderLayer, self).get_config().copy()\n        config.update({\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'rate':self.rate  \n        })\n        \n    def call(self, x, training, mask):\n\n        attn_output, _ = self.mha(x, x, x, mask)  # (batch_size, input_seq_len, d_model)\n        attn_output = self.dropout1(attn_output, training=training)\n        out1 = self.layernorm1(x + attn_output)  # (batch_size, input_seq_len, d_model)\n\n        ffn_output = self.ffn(out1)  # (batch_size, input_seq_len, d_model)\n        ffn_output = self.dropout2(ffn_output, training=training)\n        out2 = self.layernorm2(out1 + ffn_output)  # (batch_size, input_seq_len, d_model)\n    \n        return out2\n    \nclass Transformer(tf.keras.Model):\n    def __init__(self, num_layers, d_model, num_heads, dff, \n                 pe_input, rate=0.1):\n        super(Transformer, self).__init__()\n        \n        self.num_layers = num_layers\n        self.d_model = d_model\n        self.num_heads = num_heads\n        self.dff = dff\n        self.pe_input = pe_input\n        self.rate = rate\n        \n        self.encoder = Encoder(num_layers, d_model, num_heads, dff, \n                                pe_input, rate)\n        \n    def get_config(self):\n        config = super(Transformer,self).get_config().copy()\n        config.update({\n            'num_layers': self.num_layers,\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'pe_input':self.pe_input,\n            'rate':self.rate  \n        })\n    \n    def call(self, inp, training, enc_padding_mask):\n        return self.encoder(inp, training, enc_padding_mask)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:57:15.958662Z","iopub.execute_input":"2021-06-19T06:57:15.959052Z","iopub.status.idle":"2021-06-19T06:57:16.001601Z","shell.execute_reply.started":"2021-06-19T06:57:15.959019Z","shell.execute_reply":"2021-06-19T06:57:16.000130Z"},"trusted":true},"execution_count":10,"outputs":[]},{"cell_type":"markdown","source":"## ArcFace Loss","metadata":{}},{"cell_type":"code","source":"class ArcFace(tf.keras.layers.Layer):\n    \n    def __init__(self, n_classes, s, m,regularizer):\n        super().__init__()\n        self.n_classes = n_classes\n        self.s = s\n        self.m = m\n        self.regularizer = tf.keras.regularizers.get(regularizer)\n\n    def get_config(self):\n\n        config = super().get_config().copy()\n        config.update({\n            'n_classes': self.n_classes,\n            's': self.s,\n            'm': self.m,\n            'regularizer': self.regularizer\n        })\n        return config\n\n    def build(self, input_shape):\n        super(ArcFace, self).build(input_shape[0])\n        self.W = self.add_weight(name='W',\n                                shape=(input_shape[0][-1], self.n_classes),\n                                initializer='glorot_uniform',\n                                trainable=True\n                                )\n\n    def call(self, inputs):\n        x, y = inputs\n        c = tf.keras.backend.shape(x)[-1]\n        # normalize feature\n        x = tf.nn.l2_normalize(x, axis=1)\n        # normalize weights\n        W = tf.nn.l2_normalize(self.W, axis=0)\n        # dot product\n        logits = x @ W\n        # add margin\n        # clip logits to prevent zero division when backward\n        theta = tf.acos(tf.keras.backend.clip(logits, -1.0 + tf.keras.backend.epsilon(), 1.0 - tf.keras.backend.epsilon()))\n        target_logits = tf.cos(theta + self.m)\n        # sin = tf.sqrt(1 - logits**2)\n        # cos_m = tf.cos(logits)\n        # sin_m = tf.sin(logits)\n        # target_logits = logits * cos_m - sin * sin_m\n        #\n        logits = logits * (1 - y) + target_logits * y\n        # feature re-scale\n        logits *= self.s\n        out = tf.nn.softmax(logits)    \n        return out\n\n    def compute_output_shape(self, input_shape):\n        return (None, self.n_classes)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T06:57:23.562771Z","iopub.execute_input":"2021-06-19T06:57:23.563198Z","iopub.status.idle":"2021-06-19T06:57:23.576716Z","shell.execute_reply.started":"2021-06-19T06:57:23.563162Z","shell.execute_reply":"2021-06-19T06:57:23.575682Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"markdown","source":"# Model Training","metadata":{}},{"cell_type":"code","source":"####### Phase-1 Models\n###### Defining Architecture\n\nwith tpu_strategy.scope():\n\n    ##### SC_Module \n\n    #### Defining Hyperparameters\n    num_layers = 2\n    d_model = 512\n    num_heads = 8\n    dff = 1024\n    max_seq_len = 640 #X_train.shape[1]\n    pe_input = 160\n    rate = 0.5\n    num_features = 1\n    num_classes = 290\n\n    #### Defining Layers\n    Input_layer = tf.keras.layers.Input(shape=(max_seq_len,num_features))\n    self_conv1 = self_cal_Conv1D(128,15,128)\n    self_conv2 = self_cal_Conv1D(128,20,128) # Newly Added\n    self_conv3 = self_cal_Conv1D(256,15,128)\n    self_conv4 = self_cal_Conv1D(256,20,256) # Newly Added\n    self_conv5 = self_cal_Conv1D(512,15,256)\n    self_conv6 = self_cal_Conv1D(512,20,512) # Newly Added\n    self_conv7 = self_cal_Conv1D(1024,15,512)\n    self_conv8 = self_cal_Conv1D(1024,20,1024) # Newly Added\n    conv_initial = tf.keras.layers.Conv1D(32,15,padding='same',activation='relu')\n    conv_second = tf.keras.layers.Conv1D(64,15,padding='same',activation='relu')\n    conv_third = tf.keras.layers.Conv1D(128,15,padding='same',activation='relu')\n    #lstm1 = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(128,activation='tanh',return_sequences=True),merge_mode='ave')\n    transform_1 = tf.keras.layers.Conv1D(128,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_2 = tf.keras.layers.Conv1D(256,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_3 = tf.keras.layers.Conv1D(512,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_4 = tf.keras.layers.Conv1D(1024,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transformer = Transformer(num_layers,d_model,num_heads,dff,pe_input,rate)\n    gap_layer = tf.keras.layers.GlobalAveragePooling1D()\n    arc_logit_layer = ArcFace(290,30.0,0.3,tf.keras.regularizers.l2(1e-4))\n\n    #### Defining Architecture\n    ### Input Layer\n    Inputs = Input_layer\n    Input_Labels = tf.keras.layers.Input(shape=(num_classes,))\n\n    ### Initial Convolutional Layers\n    conv_initial = conv_initial(Inputs)\n    #conv_initial = tf.keras.layers.LayerNormalization()(conv_initial)\n    #conv_initial = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_initial)     \n    #conv_initial = tf.keras.layers.Add()([conv_initial,Inputs])\n    \n    conv_second = conv_second(conv_initial)\n    #conv_second = tf.keras.layers.LayerNormalization()(conv_second)\n    #conv_second = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_second)\n    #conv_second = tf.keras.layers.Add()([conv_second,conv_initial])\n    #conv_second = tf.keras.layers.concatenate(axis=2)([conv_initial,conv_second])\n    \n    conv_third = conv_third(conv_second)\n    #conv_third = tf.keras.layers.LayerNormalization()(conv_third)\n    #conv_third = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_third)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(Inputs)\n    #conv_third = tf.keras.layers.Add()([conv_third,conv_second])\n    #conv_third = tf.keras.layers.concatenate(axis=2)([conv_initial,conv_second,conv_third])\n    #conv_third = lstm1(conv_second)\n    #conv_third = tf.keras.layers.Attention()([conv_third,conv_third])\n    \n    ### 1st Residual Block\n    transform_1 = transform_1(conv_third)\n    conv1 = self_conv1(conv_third)\n    #conv1 = tf.keras.layers.AlphaDropout(rate=0.2)(conv1)\n    conv2 = self_conv2(conv1)\n    #conv2 = tf.keras.layers.AlphaDropout(rate=0.2)(conv2)\n    conv2 = tf.keras.layers.Add()([conv2,transform_1])\n    #conv2 = tf.keras.layers.LayerNormalization()(conv2)\n    conv2 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv2)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(mask)    \n\n    ### 2nd Residual Block\n    #conv_third = tf.keras.layers.Attention()([conv_third,conv_third])\n    transform_2 = transform_2(conv2)\n    conv3 = self_conv3(conv2)\n    #conv3 = tf.keras.layers.AlphaDropout(rate=0.2)(conv3)\n    conv4 = self_conv4(conv3)\n    #conv4 = tf.keras.layers.AlphaDropout(rate=0.2)(conv4)\n    conv4 = tf.keras.layers.Add()([conv4,transform_2])\n    #conv4 = tf.keras.layers.LayerNormalization()(conv4)\n    conv4 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv4)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(mask)\n\n    ### 3rd Residual Block\n    transform_3 = transform_3(conv4)\n    conv5 = self_conv5(conv4)\n    #conv5 = tf.keras.layers.AlphaDropout(rate=0.2)(conv5)\n    conv6 = self_conv6(conv5)\n    #conv6 = tf.keras.layers.AlphaDropout(rate=0.2)(conv6)\n    conv6 = tf.keras.layers.Add()([conv6,transform_3])\n    #conv6 = tf.keras.layers.LayerNormalization()(conv6)\n    #conv6 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv6)\n\n    ### 4th Residual Block\n    #transform_4 = transform_4(conv6)\n    #conv7 = self_conv7(conv6)\n    #conv8 = self_conv8(conv7)\n    #conv8 = tf.keras.layers.Add()([conv8,transform_4])\n\n    ### Transformer\n    ## Wide-Head Attention Model\n    #tx_embedding = tf.keras.layers.Lambda(PE_Layer)(Inputs)\n    #tx_embedding = tf.keras.layers.Dropout(rate)(tx_embedding,training=True)\n    #mask_reshaped = tf.keras.layers.Reshape((max_seq_len,))(Inputs)\n    #encoder_op1 = encoder_block1(tx_embedding,mask_reshaped)\n    #encoder_op2 = encoder_block2(encoder_op1,mask_reshaped)\n\n    ## Narrow-Head Attention Model\n    #mask_reshaped = tf.keras.layers.Reshape((160,))(mask)\n    embeddings =  transformer(inp=conv6,enc_padding_mask=None)\n    #embeddings = transformer(inp=conv6,enc_padding_mask=create_padding_mask(mask))\n    #residual_embeddings = tf.keras.layers.Add()([conv6,embeddings])\n\n    ### Output Layers\n    ## Initial Layers\n    gap_op = gap_layer(embeddings)\n    dense1 = tf.keras.layers.Dense(256,activation='relu')(gap_op)\n    dropout1 = tf.keras.layers.Dropout(rate)(dense1)\n    \n    ## ArcFace Output Network\n    dense2 = tf.keras.layers.Dense(256,kernel_initializer='he_normal',\n                kernel_regularizer=tf.keras.regularizers.l2(1e-4))(dropout1)\n    ##dense2 = tf.keras.layers.BatchNormalization()(dense2)\n    dense3 = arc_logit_layer(([dense2,Input_Labels]))\n    \n    ## Softmax Output Network\n    #dense2 = tf.keras.layers.Dense(256,activation='relu')(dropout1)\n    ###dropout2 = tf.keras.layers.Dropout(rate)(dense2) # Not to be included\n    #dense3 = tf.keras.layers.Dense(35,activation='softmax')(dense2)\n\n    #### Compiling Architecture            \n    ### ArcFace Model Compilation\n    model = tf.keras.models.Model(inputs=[Inputs,Input_Labels],outputs=dense3)\n    ### Softmax Model Compilation\n    #model = tf.keras.models.Model(inputs=Inputs,outputs=dense3)\n    model.load_weights('./Identification_PTB.h5')\n    model.compile(tf.keras.optimizers.Adam(lr=1e-4,clipnorm=1.0),loss='categorical_crossentropy',metrics=['accuracy'])\n\nmodel.summary()      \ntf.keras.utils.plot_model(model)\n##### Model Training \n\n#### Model Checkpointing\n#! mkdir './Models'\n#filepath= \"/content/Models/saved-model-{epoch:02d}-{val_accuracy:.2f}.h5\"\n#checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath,monitor='val_accuracy',save_best_only=False,mode='max')\nfilepath = './Identification_PTB.h5'\ncheckpoint = tf.keras.callbacks.ModelCheckpoint(filepath,monitor='val_accuracy',save_best_only=True,mode='max',save_weights_only=True)\n\n#### Custom Learning Rate Schedule\n#def build_lrfn(lr_start=1e-4, lr_max=1e-3, \n#               lr_min=1e-6, lr_rampup_epochs=5, \n#               lr_sustain_epochs=0, lr_exp_decay=.87):\n#    lr_max = lr_max * tpu_strategy.num_replicas_in_sync\n\n#    def lrfn(epoch):\n#        if epoch < lr_rampup_epochs:\n#            lr = (lr_max - lr_start) / lr_rampup_epochs * epoch + lr_start\n#        elif epoch < lr_rampup_epochs + lr_sustain_epochs:\n#            lr = lr_max\n#        else:\n#            lr = (lr_max - lr_min) * lr_exp_decay**(epoch - lr_rampup_epochs - lr_sustain_epochs) + lr_min#\n#        return lr\n#    \n#    return lrfn\n\n#lrfn = build_lrfn()\n#lr_callback = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose=1)\n#callback_list = [checkpoint,  lr_callback]\n\n#### Model Training\n#### Model Training\n### ArcFace Training\n#history = model.fit((X_train,y_train_ohot),y_train_ohot,epochs=500,batch_size=128,\n#                validation_data=((X_dev,y_dev_ohot),y_dev_ohot),validation_batch_size=128,\n#               callbacks=checkpoint)\n\n### Softmax Training \n#history = model.fit(X_train,y_train_ohot,epochs=250,batch_size=128,\n#                validation_data=(X_dev,y_dev_ohot),validation_batch_size=128,\n#                callbacks=checkpoint)\n\n\n##### Plotting Metrics  \n#### Accuracy and Loss Plots \n\n### Accuracy\n#plt.plot(history.history['accuracy'])\n#plt.plot(history.history['val_accuracy'])\n#plt.title('Model Accuracy')\n#plt.ylabel('Accuracy')\n#plt.xlabel('Epoch')  \n#plt.legend(['Train', 'Validation'], loc='best')\n#plt.show()\n\n### Loss     \n#plt.plot(history.history['loss'])  \n#plt.plot(history.history['val_loss'])\n#plt.title('Model Loss')  \n#plt.ylabel('Loss')         \n#plt.xlabel('epoch')\n#plt.legend(['Train', 'Validation'], loc='best')   \n#plt.show()\n\n##### Saving Model            \n#model.save_weights('ECG_SCNRNet.h5' )","metadata":{"execution":{"iopub.status.busy":"2021-06-19T08:25:06.687099Z","iopub.execute_input":"2021-06-19T08:25:06.687485Z","iopub.status.idle":"2021-06-19T08:25:10.364746Z","shell.execute_reply.started":"2021-06-19T08:25:06.687451Z","shell.execute_reply":"2021-06-19T08:25:10.363325Z"},"trusted":true},"execution_count":25,"outputs":[{"name":"stdout","text":"Model: \"model_4\"\n__________________________________________________________________________________________________\nLayer (type)                    Output Shape         Param #     Connected to                     \n==================================================================================================\ninput_9 (InputLayer)            [(None, 640, 1)]     0                                            \n__________________________________________________________________________________________________\nconv1d_149 (Conv1D)             (None, 640, 32)      512         input_9[0][0]                    \n__________________________________________________________________________________________________\nconv1d_150 (Conv1D)             (None, 640, 64)      30784       conv1d_149[0][0]                 \n__________________________________________________________________________________________________\nconv1d_151 (Conv1D)             (None, 640, 128)     123008      conv1d_150[0][0]                 \n__________________________________________________________________________________________________\nself_cal__conv1d_24 (self_cal_C (None, 640, 128)     262464      conv1d_151[0][0]                 \n__________________________________________________________________________________________________\nself_cal__conv1d_25 (self_cal_C (None, 640, 128)     344384      self_cal__conv1d_24[0][0]        \n__________________________________________________________________________________________________\nconv1d_152 (Conv1D)             (None, 640, 128)     49280       conv1d_151[0][0]                 \n__________________________________________________________________________________________________\nadd_9 (Add)                     (None, 640, 128)     0           self_cal__conv1d_25[0][0]        \n                                                                 conv1d_152[0][0]                 \n__________________________________________________________________________________________________\nmax_pooling1d_6 (MaxPooling1D)  (None, 320, 128)     0           add_9[0][0]                      \n__________________________________________________________________________________________________\nself_cal__conv1d_26 (self_cal_C (None, 320, 256)     385472      max_pooling1d_6[0][0]            \n__________________________________________________________________________________________________\nself_cal__conv1d_27 (self_cal_C (None, 320, 256)     1376896     self_cal__conv1d_26[0][0]        \n__________________________________________________________________________________________________\nconv1d_153 (Conv1D)             (None, 320, 256)     98560       max_pooling1d_6[0][0]            \n__________________________________________________________________________________________________\nadd_10 (Add)                    (None, 320, 256)     0           self_cal__conv1d_27[0][0]        \n                                                                 conv1d_153[0][0]                 \n__________________________________________________________________________________________________\nmax_pooling1d_7 (MaxPooling1D)  (None, 160, 256)     0           add_10[0][0]                     \n__________________________________________________________________________________________________\nself_cal__conv1d_28 (self_cal_C (None, 160, 512)     1540992     max_pooling1d_7[0][0]            \n__________________________________________________________________________________________________\nself_cal__conv1d_29 (self_cal_C (None, 160, 512)     5506304     self_cal__conv1d_28[0][0]        \n__________________________________________________________________________________________________\nconv1d_154 (Conv1D)             (None, 160, 512)     393728      max_pooling1d_7[0][0]            \n__________________________________________________________________________________________________\nadd_11 (Add)                    (None, 160, 512)     0           self_cal__conv1d_29[0][0]        \n                                                                 conv1d_154[0][0]                 \n__________________________________________________________________________________________________\ntransformer_3 (Transformer)     (None, 160, 512)     4205568     add_11[0][0]                     \n__________________________________________________________________________________________________\nglobal_average_pooling1d_3 (Glo (None, 512)          0           transformer_3[0][0]              \n__________________________________________________________________________________________________\ndense_54 (Dense)                (None, 256)          131328      global_average_pooling1d_3[0][0] \n__________________________________________________________________________________________________\ndropout_23 (Dropout)            (None, 256)          0           dense_54[0][0]                   \n__________________________________________________________________________________________________\ndense_55 (Dense)                (None, 256)          65792       dropout_23[0][0]                 \n__________________________________________________________________________________________________\ninput_10 (InputLayer)           [(None, 290)]        0                                            \n__________________________________________________________________________________________________\narc_face_3 (ArcFace)            (None, 290)          74240       dense_55[0][0]                   \n                                                                 input_10[0][0]                   \n==================================================================================================\nTotal params: 14,589,312\nTrainable params: 14,589,312\nNon-trainable params: 0\n__________________________________________________________________________________________________\n","output_type":"stream"}]},{"cell_type":"markdown","source":"# Model Testing","metadata":{}},{"cell_type":"markdown","source":"## KNN based ArcFace Loss Testing","metadata":{}},{"cell_type":"code","source":"###### Testing Model - ArcFace Style                \nwith tpu_strategy.scope():     \n\n    def normalisation_layer(x):   \n        return(tf.math.l2_normalize(x, axis=1, epsilon=1e-12))\n\n    #X_dev_flipped = tf.image.flip_up_down(X_dev)  \n    #x_train_flipped = tf.image.flip_up_down(X_train_final)\n\n    predictive_model = tf.keras.models.Model(inputs=model.input,outputs=model.layers[-3].output)\n    predictive_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\nwith tpu_strategy.scope():\n    y_in = tf.keras.layers.Input((290,))\n\n    Input_Layer = tf.keras.layers.Input((640,1))\n    op_1 = predictive_model([Input_Layer,y_in])\n\n    ##Input_Layer_Flipped = tf.keras.layers.Input((224,224,3))\n    ##op_2 = predictive_model([Input_Layer_Flipped,y_in]) \n    ##final_op = tf.keras.layers.Concatenate(axis=1)(op_1)\n\n    final_norm_op = tf.keras.layers.Lambda(normalisation_layer)(op_1)\n\n    testing_model = tf.keras.models.Model(inputs=[Input_Layer,y_in],outputs=final_norm_op)\n    testing_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\n##### Nearest Neighbor Classification\nfrom sklearn.neighbors import KNeighborsClassifier\nTest_Embeddings = testing_model.predict((X_dev,y_dev_ohot))\nTrain_Embeddings = testing_model.predict((X_train,y_train_ohot))\n\ncol_mean = np.nanmean(Test_Embeddings, axis=0)\ninds = np.where(np.isnan(Test_Embeddings))\n#print(inds)\nTest_Embeddings[inds] = np.take(col_mean, inds[1])\n\ncol_mean = np.nanmean(Train_Embeddings, axis=0)\ninds = np.where(np.isnan(Train_Embeddings))\n#print(inds)\nTrain_Embeddings[inds] = np.take(col_mean, inds[1])\n\n#Test_Embeddings = np.nan_to_num(Test_Embeddings)\n\n##### Refining Test Embeddings\n#for i in range(Train_Embeddings.shape[0]):\n#    for j in range(Train_Embeddings.shape[1]):\n#        if(math.isnan(Train_Embeddings[i,j])):\n#            Train_Embeddings[i,j] == 0\n#        if(Train_Embeddings[i,j]>1e4):\n#            Train_Embeddings[i,j] == 1e4\n\n##### Refining Train Embeddings    \n#for i in range(Test_Embeddings.shape[0]):\n#    for j in range(Test_Embeddings.shape[1]):\n#        if(math.isnan(Test_Embeddings[i,j])):\n#            Test_Embeddings[i,j] == 0\n#        if(Test_Embeddings[i,j]>1e4 or math.isinf(Test_Embeddings[i,j])):\n#            Test_Embeddings[i,j] == 1e4\n\n#del(X_train_final,X_dev,X_dev_flipped,x_train_flipped)\n#gc.collect()\n\nTest_Accuracy_With_Train = []\nTest_Accuracy_With_Test = []\n                                                                     \nfor k in range(1,31):\n    knn = KNeighborsClassifier(n_neighbors=k,metric='euclidean')\n    knn.fit(Train_Embeddings,y_train)\n    Test_Accuracy_With_Train.append(knn.score(Test_Embeddings,y_dev))\n    knn.fit(Test_Embeddings,y_dev)\n    Test_Accuracy_With_Test.append(knn.score(Test_Embeddings,y_dev))\n\nprint('--------------------------------')\nprint(np.max(Test_Accuracy_With_Train))\nprint(np.max(Test_Accuracy_With_Test))\nprint('--------------------------------')\nprint(np.mean(Test_Accuracy_With_Train))\nprint(np.mean(Test_Accuracy_With_Test))\nprint('--------------------------------')\nprint((Test_Accuracy_With_Train)[0])\nprint((Test_Accuracy_With_Test)[0])\nprint('--------------------------------')\n\nplt.plot(np.arange(1,31),np.array(Test_Accuracy_With_Train),label='Test_Accuracy_With_Train')\nplt.plot(np.arange(1,31),np.array(Test_Accuracy_With_Test),label='Test_Accuracy_With_Test')\nplt.title('Testing Accuracy vs Number of Neighbors')\nplt.xlabel('Number of Neighbors')\nplt.ylabel('Test Accuracy')\nplt.legend()       \nplt.show()                 \n\nnp.savez_compressed('Test_Embeddings_PTB_290.npz',Test_Embeddings)\nnp.savez_compressed('Train_Embeddings_PTB_290.npz',Train_Embeddings)","metadata":{"execution":{"iopub.status.busy":"2021-06-19T08:25:19.610813Z","iopub.execute_input":"2021-06-19T08:25:19.611208Z","iopub.status.idle":"2021-06-19T08:36:46.656985Z","shell.execute_reply.started":"2021-06-19T08:25:19.611173Z","shell.execute_reply":"2021-06-19T08:36:46.655957Z"},"trusted":true},"execution_count":26,"outputs":[{"name":"stdout","text":"--------------------------------\n0.9969054183311765\n1.0\n--------------------------------\n0.9945610382790376\n0.9932744425064236\n--------------------------------\n0.9969054183311765\n1.0\n--------------------------------\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAZUAAAEWCAYAAACufwpNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABQRElEQVR4nO3dd3hUxfrA8e+bHrokEZBIE6SIECCgtCuoCIiCCCqI2LtYL17btaEo+tPrFRsXFQULRSyAiqAIClIk9F5FCDWAhF6SvL8/ziQuISELZLNJeD/Ps0/2zCkzZze7787MOTOiqhhjjDH5ISTYBTDGGFN8WFAxxhiTbyyoGGOMyTcWVIwxxuQbCyrGGGPyjQUVY4wx+caCigFARPaKSI1gl8MULBFpIyLJQcy/q4hscP9/jQJw/PEicpOf204RkdtzWVdNRFREwvK3hMWPBZUiwH3gMh8ZInLAZ7nXSRzvmA+PqpZS1bX5V+pj8rzZfSivC1QexYGIPOdep2t90sJcWrUgFi1QXgP6uP+/edlXuvNeJCIhPmkvisjH/hxcVTuq6tD8K67JiwWVIsB94EqpailgPXClT9pnwS6fn24CdgI3FmSmRfSX5U7geREJDXZBTsRJvtZVgSV5bHMW0OMkjl0oFdH/Sb9ZUCnCRCRERB4XkTUiskNERolIebcuSkQ+dem7RGS2iFQQkf5Aa+BtV9N5222vIlLTPf9YRN4Rke9EZI+IzBKRc3zyvUxEVohIqoi8KyK/5NZs4LavClwE3Am0F5GKPutCReRJdw57RGSOiJzt1p0nIj+KyE4R2SoiT/qU70WfYxzVhCMi60TkMRFZCOxzv/Qf98ljqYh0zVbGO0Rkmc/6xiLyqIh8mW27gSLyZg7n+JiIjM6W9qaIDHTPbxaRte74f+RRw/wBOAzckMvreVRN0x17ms+yisi9IrLK5feCiJwjItNFZLf7P4nIdswnRWS7e+16+aRHishrIrLevQeDRCTa93V3574F+CiHsoaIyL9F5E8R2SYiw0SkrDvuXiAUWCAia47zeryKF2Rz/DIWkQvdue0SkQUi0ian18r9r73uzvMPEekjxzZpVRWR39zrNlFEYrNld6uIbBKRzSLSN9vr9F+3bpN7Hpnb6yQisSLyrSvzThGZKj61sSJNVe1RhB7AOuBS9/xBYCYQD0QC/wOGu3V3AeOAEngf3CZAGbduCnB7tuMqUNM9/xjYATQDwoDPgBFuXSywG7jarXsQOJL9eNmO/TTwu3u+CPinz7pHXVptQICGQAxQGtgM/BOIcssX+JTvRZ9jtAGSs71G84GzgWiXdg3eL94Q4DpgH1DJZ91GoKkrQ028X9CV3Hbl3HZhwDagSQ7nWBXYD5R2y6Gu/BcCJd1rVtutqwScl8tr9RzwKdAZWAuEu3wVqJbT+wfcDEzL9l6OAcoA5wGHgElADaAssBS4yee1SwP+g/c/dJE758yyvgGMBcq792Ac8HK2fV9x+0bncD63Aqtd3qWAr4BPcvq/y+X1UKAWMCfznIEXgY/d88p4/6uXu/e2nVuOy/5aAXe7c48HzgB+cscP89l2DXAuEO2WB7h11dy2w937eT6Qwt+fxX54n8UzgThgOvBCbq8T8DIwyL2/4Xg/9CTY3y/58h0V7ALY4wTfsKODyjLgEp91lfC+4MPch3k60CCHY2R90HzSsgeVD3zWXQ4sd89vBGb4rBNgQ/bjZTv2KuAh9/wJYIHPuhVAlxz26QnMy+V4H5N3ULk1j9dxfma+wATgwVy2Gw/c4Z5fASw9zjGnATe65+2ANe55SWAX0I0cvnizHeM54FP3fBZwDycXVFr6LM8BHvNZfh34r89rlwaU9Fk/Cu+HgOAFmHN81jUH/vDZ9zAQdZzzmQTc67NcO/N/NPv/XS77K16Qvxz4E4jg6KDyGD5Byuf9vCn7awX8DNzls92lHBtU/u2z/l7gB/e8mtu2js/6V4EP3fM1wOU+69oD63J7nfCC0JjjnXtRfRSP6tbpqyrwtatC78ILMulABeATvA/XCFcdf1VEwk/g2Ft8nu/H+5UJ3q/9DZkr1PuE5Hr1kIi0BKoDI1zS58D5IpLgls/G+0Bml1u6vzb4LojIjSIy3+e1qo9X68orr6H83Qx1A97rmpvP8YIhwPVuGVXdh1c7uhvYLF6zYh0/zuHfwFN4NbUTtdXn+YEclkv5LP/lypjpT7z3OQ6vpjvH53X7waVnSlHVg8cpx1nueL7HDsP7H/Wbqn6P9392V7ZVVYFrMsvnytgK7wdWTmXx/b/YkMM2uf3f57RP5uuUeezs53mWz3L21+n/8GpwE12z6OM5lKVIsqBStG0AOqpqOZ9HlKpuVNUjqvq8qtYDWuD9ys7sJD+Voak34zUfACAi4rucg5vwfvHOd+3Js3zSM8/hnBz224DXZJKTfXhfdpkq5rBN1jmK16fzPtAHiFHVcsBiV67jlQHgG6CBiNTHew2Pd2HEF0AbEYkHuuKCCoCqTlDVdnhfdstdeY5LVX/E++K5N9sqf87/RJwhIiV9lqsAm4DteAHoPJ//r7LqXTCSVcw8jr0J74vf99hpHB3k/PUU8CRHn/sGvJqK72egpKoOyGH/o/538X5MnCjffTJfJ8j5PDf5LB/1OqnqHlX9p6rWwGvqfERELjmJ8hQ6FlSKtkFAf/eliYjEiUgX97ytiJwv3hVEu/GaHDLcflvJ/Qs7L9/h1TSuch2c95HLl5qIRAHX4nXQJ/g87geud/t/ALwgIrXE00BEYoBvgUoi8pDrBC0tIhe4Q88HLheR8uJ1+j+UR5lL4n2oU1y5bsGrqWT6AOgrIk1cGWpmvqbu1+VovADxu6quzy0TVU3Ba0L5CK+JaJnLr4KIdHFf3IeAvfz9XuTlKeBf2dLmA1eLSAnxLq64zc9jHc/zIhIhIq3xgucXqpqBF/zeEJEz3blUFpH2J3Dc4cDDIlJdREoBLwEjVTXtRAuoqlPwfgzc5JP8KXCliLR3HfFRrmM8px86o4AH3TmUw2s6O1FPu9f9POAWYKRLHw78230GY4FnXNlyJCJXuP8zAVLxWhj8/Z8o1CyoFG1v4nWiThSRPXgdhZlfvBXxvgx34zWL/cLfTTdvAt1F5C9xVyf5S1W343Vsv4rXIVoPSML7sszuKrxfusNUdUvmAxiC1wTSAa+DeBQw0ZX1Q7x+hz14/RJX4jVJrALauuN+AizA6zuZyN8f7NzKvBSvH2EGXkA9H/jNZ/0XQH+8wLEHr3ZS3ucQQ90+x2v6yvQ5Xlv95z5pIcAjeL9cd+J1ht/jx7FQ1d+A37Mlv4HXRr/Vle1ULyvfAvzlyvcZcLeqLnfrHsOrLc0Ukd14ndu1T+DYQ/Bet1+BP4CDeD8qTta/8XlvVHUD0AWvBpOCV3N5lJy/297H+39ZCMwDvserNaWfQP6/4L0ek4DXVHWiS38R73OwEO/Ck7kuLTe18F7LvXj/l++q6uQTKEehJa7TyJiT4i6DTAZ6FZcPRXYiUgWvyaqiqu4OdnlM/hCRjsAgVa2a58bGb1ZTMSfMNTWUc9fhP4nXNzEzyMUKCBc0H8G7pNoCShEmItEicrl49y1VBp4Fvg52uYqbYn1npwmY5njNOxF41/1fpaoHgluk/Of6QLbiXcnTIcjFMadOgOfxmksP4PUPPhPUEhVD1vxljDEm31jzlzHGmHxzWjd/xcbGarVq1YJdDGOMKVLmzJmzXVXjclp3WgeVatWqkZSUFOxiGGNMkSIif+a2zpq/jDHG5BsLKsYYY/KNBRVjjDH55rTuUzGmsDpy5AjJyckcPHi8AYCNCayoqCji4+MJD/d/gHMLKsYUQsnJyZQuXZpq1arhjTloTMFSVXbs2EFycjLVq1f3e7+ANn+JyBDxphBdnMt6EW961tUislBEGvusu0m86VBXichNPulNRGSR22egG+UTN2Ltj277H0XkjECemzGBdPDgQWJiYiygmKAREWJiYk64thzoPpWPOf7wFh3xRuushTc8+nvgBQi8cXkuwJvS9lmfIPEecIfPfpnHfxyYpKq18EYQLTaT3pjTkwUUE2wn8z8Y0KCiqr/iDfWdmy54w6Krqs4EyolIJbypOH9U1Z2q+hfwI9DBrSujqjPdjIPD8IZXzzzWUPd8qE96/tu1AcY/DulHApaFMcYURcG++qsyR0/PmezSjpeenEM6QAVV3eyebyGX6UpF5E4RSRKRpJSUlJMr9ZaFMOs9mPHOye1vjDHFVLCDSkC4WkyOI2Wq6mBVTVTVxLi4HEcZyFudTlC7E0wZAH/lemOpMUXWjh07SEhIICEhgYoVK1K5cuWs5cOHD+e5/5QpU5g+fbpfeSUkJNCjR49TLXLQjBkzhquuuipr+eWXX6ZmzZpZy+PGjaNz585s2rSJ7t27AzB//ny+//77rG2ee+45XnvttTzzOtX3JSkpiQceeOAEzu7EBTuobOToOZ/jXdrx0uNzSAfY6prHcH+3BajMnstfBQmB7x8FG+nZFDMxMTHMnz+f+fPnc/fdd/Pwww9nLUdEROS5v79BZdmyZaSnpzN16lT27duXH0XPUVraCc9e7LcWLVowc+bf0wnNmDGDMmXKsG2b9xU0ffp0WrRowVlnncXo0aOBY4OKv/x5X453romJiQwceEKTvZ6wYF9SPBboIyIj8DrlU1V1s4hMAF7y6Zy/DHhCVXeKyG4RuRCYBdwIvOVzrJuAAe7vmICWvGw8tH0SJj4Fy8ZCvS4Bzc6cvp4ft4Slm/J3frB6Z5Xh2SvPO6F95syZwyOPPMLevXuJjY3l448/plKlSgwcOJBBgwYRFhZGvXr1GDBgAIMGDSI0NJRPP/2Ut956i9atW+d4zOHDh9O7d2+WLVvGmDFjuP766wGYPXs2Dz74IPv27SMyMpJJkyZRokQJHnvsMX744QdCQkK44447uP/++7PG8IuNjSUpKYm+ffsyZcoUnnvuOdasWcPatWupUqUKL7/8Mr17984KXm+//TYtWrQA4JVXXuHTTz8lJCSEjh07cscdd3DNNdcwd+5cAFatWsV1112XtewrLi6OMmXKsHr1amrWrMnGjRvp1q0b06dP56qrrmL69Om8+OKLrFu3jiuuuIK5c+fyzDPPcODAAaZNm8YTTzwBwNKlS2nTpg3r16/noYceOqEaxc0330xUVBTz5s2jZcuW9OjRgwcffJCDBw8SHR3NRx99RO3atZkyZQqvvfYa3377Lc899xzr169n7dq1J5VnbgIaVERkONAGiBWRZLwrusIBVHUQ3hzRl+PN+bwfuMWt2ykiLwCz3aH6qWpmh/+9eFeVRQPj3QO8YDJKRG7Dm1Tp2kCeGwAX3A0LR8D4x6BGW4gqE/AsjQkGVeX+++9nzJgxxMXFMXLkSJ566imGDBnCgAED+OOPP4iMjGTXrl2UK1eOu+++m1KlStG3b9/jHnfkyJH8+OOPLF++nLfeeovrr7+ew4cPc9111zFy5EiaNm3K7t27iY6OZvDgwaxbt4758+cTFhbGzp3HuwbIs3TpUqZNm0Z0dDT79+/nxx9/JCoqilWrVtGzZ0+SkpIYP348Y8aMYdasWZQoUYKdO3dSvnx5ypYty/z580lISOCjjz7illtuyTWfli1bMn36dNLT06lVqxYXXnghEyZM4IorrmDBggU0bdqULVu2ABAREUG/fv1ISkri7bffBrzmr+XLlzN58mT27NlD7dq1ueeee07opsPk5GSmT59OaGgou3fvZurUqYSFhfHTTz/x5JNP8uWXXx6zz6nmmZOABhVV7ZnHegXuy2XdEGBIDulJQP0c0ncAl5xcSU9SaBhc8SZ8cAlM7g8dXynQ7M3p4URrFIFw6NAhFi9eTLt27QBIT0+nUqVKADRo0IBevXpx1VVXHdW3kJfM2kWVKlWoXLkyt956Kzt37mTjxo1UqlSJpk2bAlCmjPdj7aeffuLuu+8mLMz72ipfvnyeeXTu3Jno6GjAG6WgT58+zJ8/n9DQUFauXJl13FtuuYUSJUocddzbb7+djz76iP/85z+MHDmS33//Pdd8WrRokRVUmjdvTrNmzejXrx/z5s2jTp06REVF5VnWTp06ERkZSWRkJGeeeSZbt24lPj4+z/0yXXPNNYSGhgKQmprKTTfdxKpVqxARjhzJ+UrVU80zJ8HuUyn64ptA09vg98GwaV6wS2NMQKgq5513Xlb7/aJFi5g4cSIA3333Hffddx9z586ladOmfvdfDB8+nOXLl1OtWjXOOeccdu/eneOv6byEhYWRkZEBcMyNeiVLlsx6/sYbb1ChQgUWLFhAUlJSnh3b3bp1Y/z48Xz77bc0adKEmJiYXLfNrKlMnz6d5s2bU7p0aQ4ePMiUKVOymtjyEhkZmfU8NDT0hPuBfM/16aefpm3btixevJhx48blegPjqeaZEwsq+eGSZ6BkHIx7CDLSg10aY/JdZGQkKSkpzJgxA/B+9S9ZsoSMjAw2bNhA27ZteeWVV0hNTWXv3r2ULl2aPXv25Hq8jIwMRo0axaJFi1i3bh3r1q1jzJgxDB8+nNq1a7N582Zmz/Zav/fs2UNaWhrt2rXjf//7X9YXX2bzV7Vq1ZgzZw7AcYNSamoqlSpVIiQkhE8++YT0dO+z2q5dOz766CP2799/1HGjoqJo374999xzz3GbvgDq1q3Lpk2bmDZtGo0aNQK8q9oGDRpEy5Ytj9k+r9fnVKWmplK5sne3xccffxywfHJiQSU/RJWFDi/D5vnw+/vBLo0x+S4kJITRo0fz2GOP0bBhQxISErKae2644QbOP/98GjVqxAMPPEC5cuW48sor+frrr0lISGDq1KnHHG/q1KlUrlyZs846KyvtH//4B0uXLmXHjh2MHDmS+++/n4YNG9KuXTsOHjzI7bffTpUqVWjQoAENGzbk888/B+DZZ5/lwQcfJDExMav5Jyf33nsvQ4cOpWHDhixfvjzrl32HDh3o3LkziYmJJCQkHHVpb69evQgJCeGyyy477usjIlxwwQXExMRk9Uk0b96ctWvX5lhTadu2LUuXLiUhIYGRI0ce99gn41//+hdPPPEEjRo1CuiVbzkRPY0vh01MTNR8m/lRFT7tBht+hz6/Q5mz8t7HmFwsW7aMunXrBrsYp73XXnuN1NRUXnjhhWAXJWhy+l8UkTmqmpjT9lZTyS8i0Ol1yDjiXQ1mjCnSunbtyrBhw3jwwQeDXZQiJdj3qRQv5avDPx6Fn1+AlRPg3PbBLpExQde/f3+++OKLo9KuueYannrqqSCVyD9ff/31MWldu3bljz/+OCrtlVdeoX37/P+s79ixg0suOfaC1kmTJh33ooFgs+av/Gr+ypR2GP7XGg7vh/tmQkTJvPcxJhtr/jKFhTV/BVtYBFzxBqSuh1/svhVjzOnFgkogVG0BjW7wRjHeuiTYpTHGmAJjQSVQ2r3gXWo87iFwN2YZY0xxZ0ElUEqUh8tehOTf4ed+cDB/BwQ0xpjCyIJKIDXs6Y1ePO0N+E89+P5fsH11sEtlTJ5sPhX/FaX5VODE3puTYZcUB5IIXDsMkufA7/+DpCHe35rtvBGOz7kYQiyum8Inc94O8L7w/Blx2NeUKVMoVapUnuNeZZ9PxXf8qvyUlpaWNRBlfmvRogV33XVX1rLvfCpnnnlmrvOpJCUlcfnll59QXqf6voD/783Jsm+0ghDfBK4eDA8vgTZPetMRf9YN3mkKswbDocCNAWSKgfGPw0ed8vcx/vETLsacOXO46KKLaNKkCe3bt2fzZm/27oEDB1KvXj0aNGhAjx49WLduHYMGDeKNN97IdZiWTJnzqVx22WWMGfP3FEizZ8+mRYsWNGzYkGbNmrFnzx7S09Pp27cv9evXp0GDBrz1ljeVUrVq1di+fTvgjXzcpk0bwPvS7d27Ny1btqR3796sW7eO1q1b07hxYxo3bnzUr/VXXnmF888/n4YNG/L444+zZs0aGjdunLV+1apVRy378p1PBThqPhXwJulq2bIl69ato379+hw+fJhnnnmGkSNHHjVMS+Z8KjVq1DjhibQC8d6cLKupFKTSFaDNY9DqYVg6BmYNgvGPwqR+0KgXNLkFYmtBSO7jFxkTDDafSuGdT+XIkSMBeW9OlgWVYAiLgAbXeI/kJJj1P5j9oRdkJBRKVfDGDitTCcpUhtLub5lKXnrpsyA87/kZTDHRcUCwS2DzqRTi+VRWrFiR7+/NqQj0zI8dgDeBUOADVR2QbX1VvIm44oCdwA2qmuzWvQJ0cpu+oKojXfpUoLRLPxP4XVWvEpE2eFMIZ46h8JWq9gvQqeWf+ETvcdmLsOJ7SE2GPZth90ZIWQlrpsDhHJrHQvx868JLQt0rIOF6qNLC+nDMScmcTyVz6Htf3333Hb/++ivjxo2jf//+LFq0yK9j+s6nAmTNp3LhhReeUNlOZj6VjIyMPL/ou3XrxvPPP8/FF1/s13wqb731Funp6dxxxx0FOp9KIN6bUxGwoCIiocA7QDsgGZgtImNVdanPZq8Bw1R1qIhcDLwM9BaRTkBjIAGIBKaIyHhV3a2qrX3y+JKj56KfqqpXBOqcAqp0BUjMpXp9cLcLNJv+DjhHDvh33N2bYelYmP8ZlKvqBZeGPeGMqvlXdlPs+c6n0rx5c44cOcLKlSupW7du1nwqrVq1YsSIEVnzqezenftl9L7zqWQOfz958mReeOEFbrrppqz5VJo2bcqePXuIjo7Omk+lbdu2Wc1f5cuXz5pPpWPHjnnOpxIfH09ISAhDhw49aj6Vfv360atXr6Oav3znU/nwww+P+/r4zqfy7rvvAn/Pp/Lqq68es31+zqdSu3btfH1vTlUgayrNgNWquhZAREYAXQDfoFIPeMQ9nwx845P+q6qmAWkishDoAIzK3FFEygAX4+a1L9aiyniPuNont3+n12DZt15gmTIAprwM1VpDQi+o19nGJzN5ypxP5YEHHiA1NZW0tDQeeughzj33XG644QZSU1NR1aPmU+nevTtjxozhrbfeonXr1kcdz9/5VA4cOEB0dDQ//fQTt99+OytXrqRBgwaEh4dzxx130KdPH5599lluu+02nn766axO+pzce++9dOvWjWHDhtGhQ4ej5lOZP38+iYmJREREcPnll/PSSy8B3nwqX3/9td/zqaSmph41n8rgwYNznU9lwIABJCQk8MQTT/j1HuQmIiIiX9+bUxWwASVFpDvQQVVvd8u9gQtUtY/PNp8Ds1T1TRG5GvgSiAWaAM/i1XJKAL8D76jq6z773gh0VtXubrmN2z8Z2AT0VdVjxkgRkTuBOwGqVKnS5M8//8znMy/kdq2HBSO9APPXHxBRCupd5dVgzkoAJO9jhIR5/UImYGxAycLB5lM58QElg91R3xd4W0RuBn4FNgLpqjpRRJoC04EUYAaQfZ7ensAHPstzgaqquldELser9dTKnqGqDgYGgzdKcb6eTVFQrgpc9Cj8oy+sn+EFlyXfwPxP/T9GSBhUvwjqXgl1roBScQErrjHB0rVrV9asWcPPP/8c7KIUKYGsqTQHnlPV9m75CQBVfTmX7UsBy1X1mMsdXI3mU1X93i3HAiuAyqp6MPv2bpt1QKKqbs+tjAEZ+r4oOrwPln/v9dX4Y1+Kd1HBzrUgIVCluRdg6l4JZfO+WsXkrTjVVIrqfCo5OR3nUznRmkogg0oYsBK4BK8GMhu43rdJygWHnaqaISL98Wopz7hO/nKqukNEGgCfAwmujwURuRtorqo3+RyrIrBVVVVEmgGj8WouuZ6gBZVToArblnoXASwbB9vc23pWYy+41OsCMeccvU/WBQcbvQsIdm+CPZu8v4f2wBnVIe5ciKsDsed6tarT9J6dZcuWUadOHUT8aI40JkBUleXLlxeO5i9VTRORPsAEvEuKh6jqEhHpBySp6ligDfCyiChe89d9bvdwYKr7QO3Gu9TY9/q6HkD2i/e7A/eISBpwAOhxvIBiTpEIVDjPe7R9whvTbPk4L8hMet57nFkPSp3pBY3dm3O+NDq6vHcPTmQpWDXx6Ga4sCiIqeUFmtja3oUKcbW9tNBgt9wGVlRUFDt27CAmJsYCiwkKVWXHjh1+3WPjy2Z+PImayrLNuxkzf5Pf20eEhVA6MoxSUWGUjAz7+3lEGKWjwigV6aVHhBWTe0h2bYDl38HybyHtYLabNzNv5qzk/Q2PPnrfA3959+ekLIftKyFlBWxf4V1gkCm6PNS5HOp2gRoXQVgkxc2RI0dITk4+5r4LYwpSVFQU8fHxx9zZH5Tmr6LgZIPK+EWbeXDkfP82Vjic7t98KuGh4vev0tKRYVQsG0XFMlFULBtFpbJRVCgTRaWy0VQsG0nFstGUijz613xaegb7DqWz59AR9h1KZ++hI+w5mMbeQ2nsO5TGkfT8/1+IDAuhlAuipSLDjnpeMiKMkBA/f4Uf3gfbV3nBZvVPsHICHNoNkWXg3PZek1vNS+3yaGMKgAWVXBRUn0pGhrLvcFqOX+S+z/cdTseft0NRdh9IY0vqAbbsPsSW1AP8tf/IMduVigzjjJLhHDicwb5DaRw4kv0CuuArGRFKqagwSkSEcSKtPOF6hMbpC2iVNoNWabMoq3s4SASzwxozNaw5M8IS2SelAldwP1SPKUmrWrG0qhlLzTNLWTOWKTYsqOSiOHXUHzySztbdB9mSepAtPn//2neYaNfMVjLCqyX4NsWVinTrIsMID83nLz2FQ2kZ7D3kBc69LoDm9HzfYf+GpMhJiKZzzoGFJOydSsM9UymXvp00wlgXXY9DErwx0jYcLsn8AxVYrZXZVbIG1WrWo+W5Z9KyZixnlrax20zRZUElF8UpqBgnIwM2zoFlY2H9TNAg1c5UvQsU9m7JSjpEOGszKrJGK7OrRHWiK9fj7NqNqHNeApFRJfw65KEjGcc0X+ZUA95/OP/PO6ZUJHf9owYlI4v3RRImbxZUcmFBxQTcgV1ZfUGasoI9yUvQlBWUPriJEP7+7KVoGbZo+WMfnJH1fB/Ruefjo0REKNHhoSfUnOiPHfsOc+6ZpRl8YxOqxljf1enMgkouLKiYoDlygINbVvDHsrns3bScEoe2UfLQNkq5v9Fpqcfscii0JMvjr2XFeY9QMio864KH0j5NmSUjQgkLDcxVhL+uTOH+4fMAePv6RrSuZSMpnK4sqOTCgooptI4ccDeK+twkunGON7lbk1ug03+CMo3Bnzv2ceewOazatofHO9bhjtY17AKE01BhHvvLGJOT8GgoX8N7ZFL1Zgmd9h9IOwRd3i7wEQeqxpTkq3tb0PeLBbz0/XKWbNrNgKsbEB1xeo58YI5VTO62M+Y0IAKXPANtn4IFn8OXt0P6sZeSB1rJyDDe7dWYR9vXZuyCTXQfNJ3kv/YXeDlM4WRBxZiiRAQu+he06wdLvoIvbvZqLQVeDOG+tjX58KZE1u/YT+e3f2PGmh0FXg5T+FhQMaYoavkgdHzVGwpnRC//ZwLNZxfXqcA3fVpyRolwbvhwFkOnr+N07qc1FlSMKbouuAuufNMbtubza72hbILgnLhSfHNfS9rWPpNnxy7h0dELORCA+2RM0WBXf9nVX6aoWzACvrkHzr4Arh/lTT0dBBkZypuTVvHmpFVEhYfQtFp5WteKpVXNOOpULO3/OG+m0LNLinNhQcUUG4u/gq/ugEoN4YYvIfqMoBVl9rqdfL9oM9NWbWfVtr0AxJSMoGVNbxy0VrViOaucfzdymsLJgkouLKiYYmX5d17HfVxt6D0GShbc7IC52ZJ6kGmrt/Pb6u1MW72dlD3eRQU14krSqmYsHc6rSIuasUEupTlRFlRyYUHFFDurfoKRvbxZNG8YXaimd1ZVVmzdw7RVXoCZtXYnB46k88ltzezu/CLmeEEloB31ItJBRFaIyGoReTyH9VVFZJKILBSRKSIS77PuFRFZ7B7X+aR/LCJ/iMh890hw6SIiA11eC0WkcSDPzZhCqdal0OsLSE2G9y+BTfODXaIsIkKdimW4vXUNPr6lGXOfbkeN2JI8+fUi9p/CKNWmcAlYUHHzzL8DdATqAT1FpF62zV4DhqlqA6Af8LLbtxPQGEgALgD6iohv7+OjqprgHvNdWkeglnvcCbwXiPMyptCr/g+4bSKEhsNHHWHF+GCXKEfREaG8fPX5bNh5gP9MXBns4ph8EsiaSjNgtaquVdXDwAigS7Zt6gE/u+eTfdbXA35V1TRV3QcsBDrkkV8XvAClqjoTKCcilfLjRIwpcirUg9snef0rw3vCzEHBLlGOLqgRw/UXVGHIb3+wYMOuYBfH5INABpXKwAaf5WSX5msBcLV73hUoLSIxLr2DiJQQkVigLXC2z379XRPXGyKSOUG5P/khIneKSJKIJKWkpJzsuRlT+JWuADd/D3U6wQ+PwfePQnrha2Z6vGMd4kpH8tiXCzni59TbpvAK9s2PfYGLRGQecBGwEUhX1YnA98B0YDgwA8i8m+oJoA7QFCgPPHYiGarqYFVNVNXEuDjrHDTFXEQJuHYYNO8Dvw+GET3h0J5gl+ooZaLCeaFLfZZv2cPgX9cGuzjmFAUyqGzk6NpFvEvLoqqbVPVqVW0EPOXSdrm//V2fSTtAgJUufbNr4joEfITXzOZXfsaclkJCoX1/b7j81ZNgSEdILVwfjcvOq0in8yvx5qRVrEnZG+zimFMQyKAyG6glItVFJALoAYz13UBEYkUkswxPAENceqhrBkNEGgANgIluuZL7K8BVwGK3/1jgRncV2IVAqqpuDuD5GVO0NL0Neo2Cv9bBB5fA5gXBLtFRnu1cj+jwUJ74chEZGafvrQ5FXcCCiqqmAX2ACcAyYJSqLhGRfiLS2W3WBlghIiuBCkB/lx4OTBWRpcBg4AZ3PIDPRGQRsAiIBV506d8Da4HVwPvAvYE6N2OKrJqXwm0TQEK9GsuKH4Jdoixnlo7iqU51+X3dTj7/fX2wi2NOkt38aDc/mtPRni3w+XWwZSHU7w5nN4PKTaBCfQiLCFqxVJUbPpzFgg2p/PTIRVQsGxW0spjc2R31ubCgYk5rh/fBD497tZV927y00Ehv/LD4RC/IxCdCuarePC4F5M8d+2j/319pVTOO929sYtMVF0I2nbAx5lgRJaHzW940xakbIDkJNs7x/iYNgZnvetuViPWCS4220OxOCAnsRaNVY0rySLtzeen75Xy/aAudGtjtZkWJBRVjTnciUK6K96jvbhtLPwJbl8DGJEieA8mzYeUPcGAntH0y4EW6tWV1xi3YzLNjF9OyZgzlSgSvSc6cmGDfp2KMKYxCw+GsBGh6O3R9D/rMhoRe8MsrsHRsnrufqrDQEAZ0O5+/9h+h/3fLAp6fyT8WVIwxeRPx7nOp3AS+vturxQTYeWeV5a5/1OCLOclMW7U94PmZ/GFBxRjjn/AouO4ziCwFI66H/TsDnuUDl9SiemxJnvjapiguKiyoGGP8V6YSXPcp7N4Eo28J+FhiUeF/j2R8//B57D54JKD5mVNnQcUYc2LObuY1ha2dAj89G/DsLqwRwzNX1GPyim1cMXAai5JTA56nOXkWVIwxJ65xb2h2F8x4G+YPD3h2t7aqzqi7LuRIegbd3pvOsBnrOJ3vsSvMLKgYY05O+/5QrTWMe9C7vyXAmlQtz/cPtKZlzRieGbOEPp9bc1hhlGdQcTM4GmPM0ULD4ZqhUKoCjLgB9mwNeJZnlIzgw5ua8kTHOvywZAtXvjWNxRutOaww8aemskpE/i+HqYCNMae7kjHQ83M4uAtG9Ya0QwHPMiREuOuicxh554UcTsvg6nen84k1hxUa/gSVhnhzmXwgIjPdzIll8trJGHOaqHg+dHkHNsyC7/t6w74UgMRq5fnONYc9PWYJfYbPY481hwVdnkFFVfeo6vuq2gJvlsVngc0iMlREaga8hMaYwq/+1dD6nzB3GMz+oMCyLe+awx7rUIcfFm/hirfs6rBgy3OUYten0gm4BagGfAJ8BrQGXlLVcwNcxoCxUYqNyUcZGTC8B6yZBDeOgWqtCjT72et2cv/n89iy+yCVy0WTUKUcjc4uR8LZ5ahfuSxR4dY9nF9Oaeh7EVkLTAY+VNXp2dYNVNUH8q2kBcyCijH57GAqvH8JHPgL7pzsDVJZgHbuO8xXc5OZt34X8zfsYuOuAwCEhQh1KpWmYbwXZBpVKUeN2FKEhNiw+ifjVINKKVU9qUmjRaQD8CYQCnygqgOyra+KN4VwHLATb4bHZLfuFbwaEsALqjrSpX8GJAJHgN+Bu1T1iIi0AcYAf7h9vlLVfscrnwUVYwJg+yp4/2I4oxrcOgEiSgStKNv2HGTBhlTmb/iL+Rt2sXBDKnsOeaMAlI4Ko129CtzSojrnx5cNWhmLolMNKkOBB1V1l1s+A3hdVW/NY79QvA7+dkAy3pz1PVV1qc82XwDfqupQEbkYuEVVe4tIJ+AhoCMQCUwBLlHV3SJyOTDeHeJz4FdVfc8Flb6qesVxT8iHBRVjAmTlRPj8Wq+vpduHBTrJ1/FkZChrUvYyb8Muktbt5LuFm9l3OJ0mVc/gphbV6Fi/IuGhdvteXo4XVPx59RpkBhQAVf0LaOTHfs2A1aq6VlUPAyOALtm2qQf87J5P9llfDy9YpKnqPmAh0MHl/706eDWVeD/KYowpSOdeBpc8A4u/hN/+G+zSZAkJEWpVKM21iWfzaveGzHjyEp65oh7b9x7igeHzaPXKz7w1aRXb9wb+0ujiyp+gEuJqJwCISHn8m9yrMrDBZznZpflaALhZgegKlBaRGJfeQURKiEgs0BY423dHEQkHegM/+CQ3F5EFIjJeRM7LqVDukugkEUlKSUnx4zSMMSel1cNw3tXw0/NezaUQKhMVzq2tqjP5n20YcnMitSuW4fUfV9Li5Z/556gFdiXZSfAnOLwOzHBNVQJ0B/rnU/59gbdF5GbgV2AjkK6qE0WkKTAdSAFmANnHvX4XrzYz1S3PBaqq6l7XRPYNUCt7hqo6GBgMXvNXPp2HMSY7Ee/+lR2r4Mvb4Y6fIbZw3oUQEiJcXKcCF9epwOptexk2Yx2j5yTz5dxkmlQ9g3vbnMMldSsEu5hFQp59KgDuV39bt/izb7/IcfZpDjynqu3d8hMAqvpyLtuXApar6jHNWSLyOfCpqn7vlp/Fa4K7WlUzcjneOiBRVXOd3cf6VIwpALvWw+A2UCIGbp8EUUXj3undB4/wRVIyQ6evY8Nf+5n0yEXUiCsV7GIVCqfap4KqLgFGAWOBvSLiz3WCs4FaIlJdRCKAHm5/34LFikhmGZ7AuxIMEQl1zWCISAOgATDRLd8OtMfr9M/wOVZFEa83UESauXPb4c/5GWMCqFwVuHYY7FwLX93h3c9SBJSJCue2VtX54u7mCPDV3I3BLlKR4M+Akp1FZBXepbq/AOv4++qrXKlqGtAHmAAsA0ap6hIR6Scind1mbYAVIrISqMDfzWrhwFQRWYrXVHWDOx7AILftDBGZLyLPuPTuwGIRWQAMBHqoDQZkTOFQrRV0GAArf4DJ+dV6XjAqlImida04vpqbTEaGfaXkxZ9LihcAFwM/qWojEWmL9yV/W0EUMJCs+cuYAqQK4x7whnK55mM4r2uwS+S3sQs28cDweXx2+wW0rBkb7OIE3ak2fx1R1R14V4GFqOpkvJsPjTHGfyJw+WsQ3wy+uRe2LAp2ifx2Wb0KlI4K48s5ycEuSqHnT1DZ5TrRfwU+E5E3gX2BLZYxplgKi4TrPoGocjDiethXNLo9o8JDuaLBWYxfvIW9h9Ly3uE05k9Q6QLsBx7GuydkDXBlIAtljCnGSleEHp96k3qN6g17i8b9Yt2bxHPgSDrfL9oc7KIUascNKm6olW9VNcPd3T5UVQe65jBjjDk5lZv8PQfLW01g5nuQXrhrAI2rlKN6bElrAsvDcYOKqqYDGSJio60ZY/JXg2vgnhkQ3wR+eBwGtYI/fg12qXIlInRrXJlZf+xkw879wS5OoeVP89deYJGIfCgiAzMfgS6YMeY0EHcu3PAVXPcZHNkHQ6+EUTfBrg157xsEXRvHIwJfzrXaSm78CSpfAU/jddTP8XkYY8ypE4G6V8B9v0ObJ717Wd5uCr/8Hxw5GOzSHaVyuWhanBPDl3bPSq78mU54aE6PgiicMeY0Eh4NbR6DPrOhVjuY/CK8ewGsGF9g8977o3uTeDbsPMDsdTuDXZRCyZ876v8QkbXZHwVROGPMaahcFe+y497fQGikN0XxZ9d4Y4gVAu3Pq0jJiFBGW4d9jvxp/koEmrpHa7whUD4NZKGMMYZz2sI9v8Fl/WH9TBjWBfYHv3ZQIiKMTg0q8f2izew/XLivWAsGf5q/dvg8Nqrqf/l7ml9jjAmc0HBo0Qdu+BJSN8LI3pB2ONilolvjePYdTueHxVuCXZRCx5/mr8Y+j0QRuRv/5mExxpj8UeUC776WP6fBtw8FvY+labXynF0+2q4Cy4G/k3RlSsMbrfjawBTHGGNy0eAa2LEafhkAMTWh9SNBK0pIiNCtcTxvTlrFxl0HqFwuOmhlKWz8af5q6/Nop6p3quqKgiicMcYcpc3jUL87THoelo4JalG6NY5HFb622spR/Gn+eklEyvksnyEiLwa0VMYYk5PMKYrjm8FXd8HGuUErytnlS3BB9fJ8OXcjNnXT3/y5+qujqu7KXFDVv4DLA1YiY4w5nvAo6PEZlIzzLjdODV5NoVuTeP7Yvo+56/8KWhkKG3+CSqiIRGYuiEg0EHmc7bOISAcRWSEiq0Xk8RzWVxWRSSKyUESmiEi8z7pXRGSxe1znk15dRGa5Y450UxUjIpFuebVbX82fMhpjiqBSZ8L1I+Hwfvi8BxzaG5RiXH5+JaLDQxk9x6YazuRPUPkMmCQit4nIbcCPQJ531LsRjt8BOgL1gJ4iUi/bZq8Bw1S1AdAPeNnt2wloDCQAFwB9RaSM2+cV4A1VrQn8BWTOQHkb8JdLf8NtZ4wprirU82aQ3LYEvrwNMtILvAilIsPoWL8i3y7YxMEjBZ9/YeRPR/0rwItAXfd4QVVf9ePYzYDVqrpWVQ8DI/DmZvFVD/jZPZ/ss74e8Ksbbn8fsBDoICKCN7XxaLfdUOAq97wLfwe70cAlbntjTHFV61Lo+Ko3XtjEp4NShG5N4tlzKI2JS7cGJf/Cxp+O+urAFFXtq6p9gV/9bFqqDPgONZrs0nwtAK52z7sCpUUkxqV3EJESIhILtAXOBmKAXaqalsMxs/Jz61Pd9tnP504RSRKRpJSUojE5kDHmOJrdAc3ugpnvQNKQAs++eY0YziobZfOsOP40f30BZPgsp7u0/NAXuEhE5gEXARuBdFWdCHwPTAeGAzNcvqdMVQeraqKqJsbFxeXHIY0xwdb+JajZDr7rC2smF2jWISHC1Y3jmboqha27C9eoysHgT1AJc81XALjnEX7stxGvdpEp3qVlUdVNqnq1qjYCnnJpu9zf/qqaoKrtAAFWAjuAciISlsMxs/Jz68u67Y0xxV1oGHQfAnG1vflYUgu24/zqxpXJUPh6nnXY+xNUUkSkc+aCiHQBtvux32yglrtaKwLoAYz13UBEYkUkswxPAENceqhrBkNEGgANgInqXQw+Geju9rkJyLwDaqxbxq3/We3icWNOH1FlvEuN0w/Dd/8s0KFcasSVoknVMxg9J/m0v2fFn6ByN/CkiKwXkQ3AY8Cdee3k+jX6ABOAZcAoVV0iIv18glQbYIWIrAQqAP1dejgwVUSWAoOBG3z6UR4DHhGR1Xh9Jh+69A+BGJf+CHDMJczGmGKufA24+ClYOR6WfF2gWXdrHM/qbXtZmJxaoPkWNuJvVBWRUgCquldEmqrq7ICWrAAkJiZqUlJSsIthjMlP6Wnw4aXeTZH3/Q4lyhdItqkHjnDBSz9Ru0JpPr6lGWeU9KeXoGgSkTmqmpjTOn9qKpmqAI+JyCrgvXwpmTHG5LfQMOj8Fhz4Cyb+u8CyLRsdzsAejVi2ZQ/X/G8Gm3YdKLC8C5PjBhURqSYiT4jIQuAT4B6gXW4RyhhjCoWK50PLB2H+Z7Dm57y3zyeXnVeRYbc2Y2vqQbq9N53V2/YUWN6FRa5BRURmAN/hDY/fTVWbAHtUdV0Blc0YY07eP/7lDZE/7iE4vK/Asr2wRgwj72pOWobSfdCM025csOPVVLYCpfE60DNv6Di9L2swxhQd4VFw5UDY9SdMfqlAs653Vhm+vLsFZaPD6fX+LKas2Fag+QdTrkFFVa8CzgfmAM+JyB/AGSLSrIDKZowxp6ZaS2hyC8x8FzbOKdCsq8SUYPTdLagRV5LbhybxzWlyD8tx+1RUNVVVP1LVy/AGdnwaeMNdWmyMMYVfu+ehVAUY+wCkHynQrONKRzLizgtpWq08D42cz5BpfxRo/sHg99VfqrpNVd9W1ZZAqwCWyRhj8k9UWej0OmxdDL+9WeDZl44K56NbmtKxfkX6fbuUV39YXqxvkDyRS4qzqOqf+V0QY4wJmDqdoN5V8MursH1VgWcfFR7K29c35voLqvDulDU8/uUi0tIz8t6xCDqpoGKMMUVOx1chPBrG3g8ZBf+FHhoi9L+qPg9cUouRSRu497O5HCmGgcWfoe9b+pNmjDGFWukK0L4/rJ8Bcz4KShFEhEfanctzV9Zj4tKtPP7lomLXFOZPTeUtP9OMMaZwS+gF1S+CH58t8JGMfd3csjoPX3ouX85N5j8/rgxaOQIhLLcVItIcaAHEicgjPqvKAKGBLpgxxuQ7EbjyTXi3uTeScc/hXloQPHBJTbbsPsBbP6+mYtkoel1QNSjlyG/Hq6lEAKXwAk9pn8du/h563hhjipby1f8eyXjhqKAVQ0R4oUt9Lq5zJk9/s5gfi8l0xHmOUiwiVTOv9nJzn5RS1d0FUbhAs1GKjTlNpafB0Cu8GyKvHwXntA1aUfYfTqPn4Jms2LqHz++4kMZVzghaWfx1qqMUvywiZUSkJLAYWCoij+ZrCY0xpiCFhnlNXzG1YEQv2BC8mTxKRITx4c1NqVAmituHJvHH9oIbpywQ/Akq9VzN5CpgPFAd6B3IQhljTMBFnwG9v4JSZ8Jn3WHr0qAVJbZUJENvaYYANw35nZQ9h4JWllPlT1AJF5FwvKAyVlWP4OfAkiLSQURWiMhqETlmJkYRqSoik0RkoYhMEZF4n3WvisgSEVkmIgPFU1pE5vs8tovIf932N4tIis+62/0pozHmNFa6Itz4jXf/yiddYWfwhlGpFluSD29uSsqeQ9w2dDb7DqXlvVMh5E9Q+R+wDigJ/CoiVfE6649LREKBd4COQD2gp4jUy7bZa8AwVW0A9ANedvu2AFrizU1fH2gKXKSqe1Q1IfMB/Al85XO8kT7rP/Dj3Iwxp7szqkHvryH9EAzrArs3B60oCWeX4+3rG7F4Yyr3fV40b47MM6io6kBVrayql6vnT8CfXq1mwGpVXauqh4ERQJds29QDMmfQmeyzXoEovCvQIvHmrD/q0ggRORc4E5jqR1mMMSZ3Z9aFXl/Cvu3w6dWwf2fQinJJ3Qr073o+U1ak8NTXRe/mSH/uqK8gIh+KyHi3XA+4yY9jVwZ8RzNOdmm+FgBXu+ddgdIiEqOqM/CCzGb3mKCqy7Lt2wOvZuL7indzTWmjReTsXM7nThFJEpGklJQUP07DGHNaiG8CPT+HHavhs2vg0N6gFaVnsyo8cHFNRiUl89+fCn6sslPhT/PXx8AE4Cy3vBJ4KJ/y7wtcJCLzgIuAjUC6iNQE6gLxeIHoYhFpnW3fHsBwn+VxQDXXlPYjMDSnDFV1sKomqmpiXFxcTpsYY05XNdpA949g01wYcT2kBa/D/OF253JNk3jenLSKd6esLjI1luNNJ5x5t32sqo4CMgBUNQ1I9+PYGwHf2kK8S8uiqptU9WpVbQQ85dJ24dVaZqrqXlXdi3fVWXOfsjUEwlR1js+xdqhq5n/AB0ATP8pojDFHq3sFdHkH/vgFvrzNu6clCESEl64+n04NKvHqDyu4Y1gSu/YfDkpZTsTxaiq/u7/7RCQGd8WXiFwIpPpx7NlALRGpLiIReDWLsb4biEisu6ES4AlgiHu+Hq8GE+auPLsI8G3+6snRtRREpJLPYuds2xtjjP8SrocOA2DZOBj3YFBGNQYIDw3h7Z6NeO7KevyyMoVOA6cV+jnvjxdUMgfEeQQvGJwjIr8Bw4D78zqwq9H0wWs6WwaMUtUlItJPRDq7zdoAK0RkJVAB6O/SRwNrgEV4/S4LVHWcz+GvJVtQAR5wlyAvAB4Abs6rjMYYk6sL74GLHoP5n8LEf0OQmp9EhJtbVmf03S0ICYFrB83gg6lrC21zWK7DtIhIMvAftxiCdxWWAIeAdFX9T447FiE2TIsx5rhU4YfHYdYgSLwVLn8NQoI3nm7qgSP8a/QCJizZyqV1K/D6NQ0pWyK8wMtxssO0hOINKFka7x6VMJdWwqUZY0zxJuI1g7V8CJKGwOhbgtp5XzY6nEE3NOGZK+rxy8ptXD5wKvMKWXPY8Woqc1W1cQGXp0BZTcUY47fpb8PEp6D6P+C6zyCqTFCLM3/DLvp8Ppetuw/yeMe63NqyGlJAw/ifbE0lOJMMGGNMYdSiD3T9H/w53RvheO+2oBYn4exyfHd/a9rWPpMXvl3KnZ/MIXX/kaCWCY4fVC4psFIYY0xR0LAH9BgOKSthSHv4a11Qi1O2RDj/692Ep6+ox+Tl2+j8zjT2BnnMsFyDiqoGb5wCY4wprM69DG4a6w3l8uFlsGVxUIsjItzWqjrDbm3Gnzv2M/jXtUEtjz931BtjjPF1djO49QeQUPjoclj3W7BLRIuasXRqUIn3f13Ltt0Hg1YOCyrGGHMyzqwLt0305mP5pCss/y7YJeJf7WuTlpHBG0EcL8yCijHGnKxyZ8OtE6BifRh5A8z9JKjFqRpTkl4XVGXk7PWs2ronKGWwoGKMMaeiZAzcOBZqtIWxfWDKgKAN6wLwwCW1KBkRxis/LA9K/hZUjDHmVEWWgp4joGFPmPIyjOoNh4JTUyhfMoJ72p7DT8u2MXPtjgLP34KKMcbkh7AIuOo97w78FePhg0thx5qgFOXWltWpVDaKl79fRkZGwY4RZkHFGGPyi4g3EGXvr7ybI99vC6t+KvBiRIWH8ki7c1mQnMp3iwp2emQLKsYYk99qtIE7J0PZKvBZd5j2RoGPcnx143jqVCzNqxOWcyjNnymw8ocFFWOMCYQzqsFtE+C8rvDTc95glIf3FVj2oSHCE5fXZcPOA3w6c32B5WtBxRhjAiWiJHQfApc+D0u+8e7AL8ChXf5RK5ZWNWN56+dVpB4omHHBLKgYY0wgiUCrh6DXaEjdAIPbwNopBZS18HjHOqQeOMJ7UwrmooGABhUR6SAiK0RktYg8nsP6qiIySUQWisgUEYn3Wfeqm8lxmYgMFDems9tuhYjMd48zXXqkiIx0ec0SkWqBPDdjjDkhtS6FOyZDqYreHfgz3yuQbOtXLkvXhMoM+e0PNu46EPD8AhZURCQUeAfoCNQDeopIvWybvQYMU9UGQD/gZbdvC6Al0ACoDzTFm6c+Uy9VTXCPzPGnbwP+UtWawBvAK4E5M2OMOUkx58DtP0Lty70ZJQvoyrBHLjsXgNcnrgh4XoGsqTQDVqvqWlU9DIwAumTbph7ws3s+2We9AlFABN40xuHA1jzy6wIMdc9HA5dk1m6MMabQiCzt9bPEngvfPgyH9gY8y/gzSnBLy2p8PW8jSzalBjSvQAaVysAGn+Vkl+ZrAXC1e94VKC0iMao6Ay/IbHaPCaq6zGe/j1zT19M+gSMrP1VNA1KBmOyFEpE7RSRJRJJSUlJO7QyNMeZkhEVC57cgdT38/GKBZHlvm5qUjQ5nwPjADt8S7I76vsBFIjIPr3lrI5AuIjWBukA8XrC4WERau316qer5QGv36H0iGarqYFVNVNXEuLi4/DoPY4w5MVUuhKa3w6xBkBz4ac3LRofTp21Npq7azq8rA/eDOpBBZSNwts9yvEvLoqqbVPVqVW0EPOXSduHVWmaq6l5V3QuMB5q79Rvd3z3A53jNbEflJyJhQFmg4Ae+McYYf13yLJQ5C8beD2mHA55d7+ZVObt8NC+PX056gIZvCWRQmQ3UEpHqIhIB9ADG+m4gIrEiklmGJ4Ah7vl6vBpMmIiE49VilrnlWLdvOHAFkDnt2ljgJve8O/CzagHfwmqMMSciqgx0+g9sWwq//Tfg2UWGhfJo+zos27ybb+ZtzHuHkxCwoOL6NfoAE4BlwChVXSIi/USks9usDbBCRFYCFYD+Ln00sAZYhNfvskBVx+F12k8QkYXAfLzayftunw+BGBFZDTwCHHMJszHGFDq1O0D9bvDr/0FK4K/OuuL8SrSuFRuwmoqczj/mExMTNSkp8G2ZxhhzXHtT4J2m3hVht/wAIYHt7lZVTuXiWBGZo6qJOa0Ldke9McaYUnHQ/mXYMAuSPgx4doG828KCijHGFAYNe8A5F3uDT+7akOfmhZUFFWOMKQxE4Ir/gmbAd48U+FD5+cWCijHGFBZnVIWLn4ZVE2Hxl8EuzUmxoGKMMYXJBXdB5SYw/l+wr+jdamdBxRhjCpOQUG8Il4OpMOHJYJfmhFlQMcaYwqbCedDqYVg4AlYX/Bz3p8KCijHGFEb/eNS7b2VcwYxknF8sqBhjTGEUFglXDvRGMp7UL9il8ZsFFWOMKayqNodmd8Lv/4N1vwW7NH6xoGKMMYXZpc/BGdVgzH1weH+wS5MnCyrGGFOYRZSEzm/DX38UiWYwCyrGGFPYVW8NTe/wJvT6c3qwS3NcFlSMMaYouPQ5KFel0DeDWVAxxpiiILIUdHkHdq6Fn18IdmlyZUHFGGOKisxmsJnvwZ8zgl2aHAU0qIhIBxFZISKrReSYmRhFpKqITBKRhSIyRUTifda9KiJLRGSZiAwUTwkR+U5Elrt1A3y2v1lEUkRkvnvcHshzM8aYoLj0OSh3Noy5t1A2gwUsqIhIKPAO0BGoB/QUkXrZNnsNGKaqDYB+wMtu3xZAS6ABUB9oijdPPcBrqloHaAS0FJGOPscbqaoJ7vFBgE7NGGOC56hmsBeDXZpjBLKm0gxYraprVfUwMALokm2besDP7vlkn/UKRAERePPShwNbVXW/qk4GcMecC8RjjDGnk+r/gKa3w8x3C10zWCCDSmXAd/qyZJfmawFwtXveFSgtIjGqOgMvyGx2jwmqusx3RxEpB1wJTPJJ7uaa0kaLyNk5FUpE7hSRJBFJSklJOclTM8aYILv0edcMVriuBgt2R31f4CIRmYfXvLURSBeRmkBdvFpIZeBiEWmduZOIhAHDgYGqutYljwOquaa0H4GhOWWoqoNVNVFVE+Pi4gJ1XsYYE1iRpbybIneugcn9g12aLIEMKhsB39pCvEvLoqqbVPVqVW0EPOXSduHVWmaq6l5V3QuMB5r77DoYWKWq//U51g5VPeQWPwCa5O/pGGNMIVPjIki8DWa8A+tnBrs0QGCDymyglohUF5EIoAcw1ncDEYkVkcwyPAEMcc/X49VgwkQkHK8Ws8zt8yJQFngo27Eq+Sx2ztzeGGOKtXbPQ9mz4Zt74ciBYJcmcEFFVdOAPsAEvC/4Uaq6RET6iUhnt1kbYIWIrAQqAJl1uNHAGmARXr/LAlUd5y45fgqvg39utkuHH3CXGS8AHgBuDtS5GWNMoRFZGrq4ZrBCcDWYqGqwyxA0iYmJmpSUFOxiGGPMqfv2YUj6CO6cDGc1CmhWIjJHVRNzWhfsjnpjjDH54ZJnoWQcfNcXMjKCVgwLKsYYUxxEl4PLXoCNSTD/06AVw4KKMcYUFw2ugyrN4cdnYf/OoBTBgooxxhQXInD5a3AwNWgjGVtQMcaY4qRifbjgLq/TfuPcAs/egooxxhQ3bR6HUmfCd/8s8E57CyrGGFPcRJWFy16ETXNh3rACzdqCijHGFEfnXwNVW8JPzxVop70FFWOMKY6yOu13w6TnCyxbCyrGGFNcVagHF9wNc4ZC8pwCydKCijHGFGeZnfbf/xMy0gOenQUVY4wpzqLKwGX9YdM8mJvjNFP5yoKKMcYUd+d3h6qtYFI/2LcjoFlZUDHGmOJOBDoVTKe9BRVjjDkdnFkXLrwH5g6D5MBN+WFBxRhjThdtHofSFd2d9oHptA9oUBGRDiKyQkRWi8jjOayvKiKTRGShiExxMztmrnvVzeS4TEQGioi49CYissgd0ze9vIj8KCKr3N8zAnluxhhT5ESW9u603zwf5nwckCwCFlREJBR4B+iIN/1vTxGpl22z14BhqtoA6Ae87PZtAbQEGgD1gaZ489QDvAfcAdRyjw4u/XFgkqrWAia5ZWOMMb7qd4P63aFE+YAcPpA1lWbAalVdq6qHgRFAl2zb1AN+ds8n+6xXIAqIACKBcGCriFQCyqjqTPXmQR4GXOX26QJkXi831CfdGGNMJhHo/iGc1zUghw9kUKkMbPBZTnZpvhYAV7vnXYHSIhKjqjPwgsxm95igqsvc/sm5HLOCqm52z7cAFXIqlIjcKSJJIpKUkpJycmdmjDEmR8HuqO8LXCQi8/CatzYC6SJSE6gLxOMFjYtFpLW/B3W1GM1l3WBVTVTVxLi4uFM+AWOMMX8LZFDZCJztsxzv0rKo6iZVvVpVGwFPubRdeLWWmaq6V1X3AuOB5m7/+FyOmdk8hvu7Ld/PyBhjzHEFMqjMBmqJSHURiQB6AGN9NxCRWBHJLMMTwBD3fD1eDSZMRMLxajHLXPPWbhG50F31dSMwxu0zFrjJPb/JJ90YY0wBCVhQUdU0oA8wAVgGjFLVJSLST0Q6u83aACtEZCVeH0h/lz4aWAMswut3WaCq49y6e4EPgNVum/EufQDQTkRWAZe6ZWOMMQVIvO6H01NiYqImJQXuzlJjjCmORGSOqibmtC7YHfXGGGOKEQsqxhhj8s1p3fwlIinAn9mSY4HtQShOoBS384Hid07F7Xyg+J1TcTsfOLVzqqqqOd6TcVoHlZyISFJubYVFUXE7Hyh+51TczgeK3zkVt/OBwJ2TNX8ZY4zJNxZUjDHG5BsLKscaHOwC5LPidj5Q/M6puJ0PFL9zKm7nAwE6J+tTMcYYk2+spmKMMSbfWFAxxhiTbyyoOHlNfVwUicg6N/XyfBEpkuPRiMgQEdkmIot90ors1NG5nM9zIrLRvU/zReTyYJbxRIjI2SIyWUSWuum/H3TpRfk9yu2ciuT7JCJRIvK7iCxw5/O8S68uIrPcd95IN/DvqednfSpZUx+vBNrhTfw1G+ipqkuDWrBTJCLrgERVLbI3bYnIP4C9eNNO13dprwI7VXWA+wFwhqo+Fsxy+iuX83kO2KuqrwWzbCfDTTNRSVXnikhpYA7erKs3U3Tfo9zO6VqK4PvkRnQvqap73ajv04AHgUeAr1R1hIgMwhu4971Tzc9qKh5/pj42QaCqvwI7syUX2amjczmfIktVN6vqXPd8D96I5JUp2u9RbudUJKlnr1sMdw8FLsYbER7y8T2yoOLxZ+rjokiBiSIyR0TuDHZh8pFfU0cXMX1EZKFrHisyTUW+RKQa0AiYRTF5j7KdExTR90lEQkVkPt7khT/iTRuyy01RAvn4nWdBpXhrpaqNgY7Afa7ppVg53tTRRch7wDlAArAZeD2opTkJIlIK+BJ4SFV3+64rqu9RDudUZN8nVU1X1QS82XKbAXUClZcFFU+eUx8XRaq60f3dBnyN989UHBSrqaNVdav70GcA71PE3ifXTv8l8JmqfuWSi/R7lNM5FfX3CbKma5+MNz17OREJc6vy7TvPgoonz6mPixoRKek6GRGRksBlwOLj71VkFKupozO/fJ2uFKH3yXUCf4g33fd/fFYV2fcot3Mqqu+TiMSJSDn3PBrvgqRleMGlu9ss394ju/rLcZcH/hcIBYaoav/j71G4iUgNvNoJQBjweVE8JxEZjjftdCywFXgW+AYYBVTBm7rgWlUtEp3fuZxPG7wmFQXWAXf59EcUaiLSCpiKN/V3hkt+Eq8Poqi+R7mdU0+K4PskIg3wOuJD8SoSo1S1n/uOGAGUB+YBN6jqoVPOz4KKMcaY/GLNX8YYY/KNBRVjjDH5xoKKMcaYfGNBxRhjTL6xoGKMMSbfWFAxxYKIqIi87rPc1w3UmB/H/lhEuue95Snnc42ILBORydnSq7nzu98n7W0RuTmP490tIjfmsc3NIvJ2Luv25pRuzPFYUDHFxSHgahGJDXZBfPncseyP24A7VLVtDuu2AQ+eyPDkqjpIVYedQP755gTP2xQjFlRMcZGGN+f2w9lXZK9pZP4CF5E2IvKLiIwRkbUiMkBEerm5JxaJyDk+h7lURJJEZKWIXOH2DxWR/xOR2W6Qwbt8jjtVRMYCx0yfICI93fEXi8grLu0ZoBXwoYj8Xw7nlwJM4u+71H2Pd46I/OAGDp0qInVc+nMi0tc9b+rKON+V2fdu8LPc/qvctAK+x35DvDk4JolInEtLEJGZ7nhfZw6sKCJTROS/4s3d86CreS0Wbx6PX3M4J1MMWVAxxck7QC8RKXsC+zQE7gbqAr2Bc1W1GfABcL/PdtXwxnrqBAwSkSi8mkWqqjYFmgJ3iEh1t31j4EFVPdc3MxE5C3gFb9jxBKCpiFylqv2AJKCXqj6aS1lfAfqKN/+Pr8HA/araBOgLvJvDvh/h3QGeAKRnW5cAXAecD1wnIpnj4JUEklT1POAXvLv/AYYBj6lqA7y7zp/1OVaEqiaq6uvAM0B7VW0IdM7lnEwxY0HFFBtuJNlhwAMnsNtsN3/GIbzhwCe69EV4gSTTKFXNUNVVwFq8UV4vA250Q4rPAmKAWm7731X1jxzyawpMUdUUN+z4Z4Bfo0er6lqXz/WZaW4k3RbAF64c/wN8x6jCjftUWlVnuKTPsx16kqqmqupBvJpVVZeeAYx0zz8FWrmAXU5Vf3HpQ7OVf6TP89+Aj0XkDrwhQsxpwNo9TXHzX2Au3i/zTGm4H1AiEgL49kv4jnWU4bOcwdGfj+zjGSkgeDWECb4rRKQNsO9kCu+Hl/AmVsr8Ug/Bmxcj4RSO6fsapJP794I/Yzplnbeq3i0iF+DV7uaISBNV3XHyxTRFgdVUTLHiBi0chdc0lWkd0MQ974w3892JukZEQlw/Sw1gBTABuEe8YdIRkXPdiNDH8ztwkYjEumasnvwdIPKkqsvxahNXuuXdwB8ico0rg4hIw2z77AL2uC948Ebh9kcIf49iez0wTVVTgb9EpLVL751b+UXkHFWdparP4PUJnZ3TdqZ4sZqKKY5eB/r4LL8PjBGRBcAPnFwtYj1eQCgD3K2qB0XkA7wmsrkiInhfnFcd7yCqulm8Odsn49V0vlPVEx1yvD/eqLKZegHvici/8QLmCGBBtn1uA94XkQy8IJDqRz77gGbuuNvw+l3Au1hgkIiUwGsKvCWX/f9PRGrhneekHMpkiiEbpdiY04CIlMqcp9wFtUqq+mCQi2WKIaupGHN66CQiT+B95v8Ebg5ucUxxZTUVY4wx+cY66o0xxuQbCyrGGGPyjQUVY4wx+caCijHGmHxjQcUYY0y++X/YipCTI1ns4AAAAABJRU5ErkJggg==\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":"## t-SNE","metadata":{}},{"cell_type":"code","source":"####### t-SNE Plot Generation\n###### Model Creation\n#with tpu_strategy.scope():          \n#    tsne_model = tf.keras.models.Model(inputs=model.input,outputs=model.layers[-4].output)\n#    tsne_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n#tsne_model.summary()\n\n###### Model Predicted\n#embeddings_final = tsne_model.predict((X_dev,y_exp))\n\n###### t-SNE plot plotting\n##### Reduction to Lower Dimensions\ntsne_X_dev = TSNE(n_components=2,perplexity=30,learning_rate=10,n_iter=2000,n_iter_without_progress=50).fit_transform(Test_Embeddings)\n\n##### Plotting\nj = 0 # Index for rotating legend\nplt.rcParams[\"figure.figsize\"] = [24,16]\nmStyles = [\".\",\",\",\"o\",\"v\",\"^\",\"<\",\">\",\"1\",\"2\",\"3\",\"4\",\"8\",\"s\",\"p\",\"P\",\"*\",\"h\",\"H\",\"+\",\"x\",\"X\",\"D\",\"d\",\"|\",\"_\",\n           0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10]\nfor idx,color_index,marker_type in zip(list(np.arange(100)),sns.color_palette('muted',100),mStyles):\n    plt.scatter(tsne_X_dev[y_dev == idx, 0], tsne_X_dev[y_dev == idx, 1],marker=marker_type)\nplt.legend([str(j) for j in range(100)])\nplt.savefig('tsne_plot_5000_iters.png')\nplt.savefig('tsne_plot_5000_iters.pdf')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-06-19T08:36:46.658366Z","iopub.execute_input":"2021-06-19T08:36:46.658612Z","iopub.status.idle":"2021-06-19T08:39:48.305191Z","shell.execute_reply.started":"2021-06-19T08:36:46.658587Z","shell.execute_reply":"2021-06-19T08:39:48.304159Z"},"trusted":true},"execution_count":27,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 1728x1152 with 1 Axes>","image/png":"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P/3FTj39xU6NTummW88con49Inw+UGt/SaW+yS70aY3aah8kVi2/2Kn84gOqdJt69dpxlu0F4NjBTFkAANClnDZpU50uWQAA0PHyiyr0zBc7NeHhT7Vzf4lcblP//S6/0efXZhbojv98qwkPf6rte4t9mjm7Yus+lTndzT8oaen3+XpjfXaTz+wvqdSmrMI61xKigjXxuB665YzGxx4A6FyysrI0efJkDR06VMOGDdOiRYskSffee69OOOEEpaWl6YwzzlBOTo4l+xmmaVqykBXS09PNjIwMf5cBAAAAAADayRvrs3X7G1/LbjMU4rDLZkhFFVVNviYxOljnnpioV9ftkd0wVFJZpYemj9CY/j3aNNYgv6hCt73xtT7/cb8mDuqhz7cdUJDdkMttKizIpogQh+49d6jio0ObHZ3ATFnAGlu2bFFqaqrf9s/NzVVubq5Gjhyp4uJijRo1Sm+//baSk5MVHR0tSfrrX/+qzZs368knn6z3+obqNwxjvWma6Q3tx/gCAAAAAADQYUoqXPKYksdtyjTdqvI03yyWW+TUv1buUnK3MGUXlEuSbn39G007KUkXp/dp9czZhOhQ/XvuGH2355CGJ8XosWU/6u8rftJ1k/rrmS8z9co1Y3VcfFSL1qo+SGzpd7ka1a+7hifFtLgOAL7ZdflsSVK/F/7t81qJiYlKTEyUJEVFRSk1NVV79uzR0KFDa54pLS2VYRg+7yURygIAAAAAgA503om99YcPtsjtMVsUyIY6bLpqQn8lxoTqoaVblRQbppiwIG3OLdKbG/fozY17dOPUQbrp9NaPCqgOUH/zs8GaObqvEqJDNefU/q2eW5sQHaorTunf6v0BdE6ZmZnauHGjxowZI0m6++679e9//1sxMTH69NNPLdmDmbIAAAAAAKDTujg9WbeeebxCghyqrPLosUvTtKewXEmxYXr56jFacvVYXTQq2ed9qoNYXw8SAxDYSkpKNH36dD322GM1YwseeOABZWVladasWXr88cct2YdQFgAAAAAAdJj3vs6R+3CH7M2nD1ZQA8mEIWny4Dj9fdZIXTNxoCTvmICVt0/WrgNlKne5tXjuyTplYJzGDWzbXFkAOJrL5dL06dM1a9YsTZs2rd79WbNm6T//+Y8lezG+AAAAAAAAdJio0CAF223697zRGjugh97ZlKOf9pXUecaU9OPe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\n"},"metadata":{"needs_background":"light"}}]}]}